/* Pro Pixel's own stylesheet for the page structure the imported content is
   written in, in place of BeTheme's be.css, responsive.css, the plugins'
   stylesheets and the theme options CSS (about 1 MB, all of it gone).

   The markup is unchanged: sections (.mcb-section) hold wraps (.mcb-wrap)
   that hold columns (.mcb-column), each sized by a class per screen —
   "one-second" on desktop, "laptop-…" from 960 to 1239px, "tablet-…" from
   768 to 959px and "mobile-…" below 768px. Every page's own stylesheet
   (post-css) still sets its spacing and colours on top of this; design.css,
   loaded last, sets the type, cards, calls to action and the header bands.

   Breakpoints: 1240 (desktop), 960 (laptop), 768 (tablet), below is mobile. */

/* ---- Base ------------------------------------------------------------------ */

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; background: var(--pp-paper, #fcfcfc); scroll-behavior: smooth; scroll-padding-top: 96px; }

@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
    margin: 0;
    background: var(--pp-paper, #fcfcfc);
    color: #1f2d2e;
    font-size: 17px;
    line-height: 1.65;
    font-weight: 400;
    overflow-x: hidden;
    --mfn-column-gap-top: 0px;
    --mfn-column-gap-bottom: 40px;
    --mfn-column-gap-left: 12px;
    --mfn-column-gap-right: 12px;
    --pp-gutter: 24px;
    --pp-header-h: 76px;
}

@media (max-width: 767px) { body { font-size: 16px; --pp-gutter: 8px; --pp-header-h: 64px; } }

img, svg, video, canvas, iframe { max-width: 100%; }
img { height: auto; border: 0; vertical-align: middle; }
iframe { border: 0; }
figure { margin: 0 0 1.5em; }
figcaption, .wp-caption-text { font-size: .875em; color: #4f6567; margin-top: .5em; }

a { color: #275559; text-decoration: none; transition: color .15s ease; }
a:hover { color: #1d4245; }

p { margin: 0 0 1.1em; }
p:last-child { margin-bottom: 0; }

h1, h2, h3, h4, h5, h6 { margin: 0 0 .55em; color: #1d4245; line-height: 1.2; font-weight: 700; overflow-wrap: break-word; }
h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { color: inherit; }
h1 { font-size: clamp(32px, 4.6vw, 52px); line-height: 1.1; }
h2 { font-size: clamp(26px, 3.4vw, 40px); line-height: 1.15; }
h3 { font-size: clamp(21px, 2.3vw, 28px); }
h4 { font-size: clamp(18px, 1.7vw, 22px); }
h5 { font-size: 18px; }
h6 { font-size: 16px; }

ul, ol { margin: 0 0 1.2em; padding-left: 1.4em; }
li { margin-bottom: .35em; }
li > ul, li > ol { margin: .35em 0 0; }
dl { margin: 0 0 1.2em; }
dt { font-weight: 600; }
dd { margin: 0 0 .6em; }

strong, b { font-weight: 700; }
small { font-size: .85em; }
hr { border: 0; height: 1px; background: #dbe5e4; margin: 2em 0; clear: both; }
hr.hr_color, .hr_color hr { background: #275559; height: 2px; }

blockquote {
    margin: 1.6em 0;
    padding: 18px 24px;
    border-left: 4px solid #9edc29;
    background: #eef4f3;
    border-radius: 0 12px 12px 0;
    color: #1d4245;
    font-size: 1.05em;
}
blockquote p:last-child { margin-bottom: 0; }
blockquote cite { display: block; margin-top: .6em; font-size: .85em; font-style: normal; color: #4f6567; }

code, kbd, pre, samp { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .9em; }
:not(pre) > code { background: #eef4f3; padding: .12em .4em; border-radius: 5px; overflow-wrap: anywhere; }
pre { background: #1d4245; color: #eef4f3; padding: 18px 20px; border-radius: 12px; overflow: auto; margin: 0 0 1.4em; line-height: 1.55; }

table { width: 100%; border-collapse: collapse; margin: 0 0 1.5em; font-size: .95em; }
th, td { padding: 12px 14px; border-bottom: 1px solid #dbe5e4; text-align: left; vertical-align: top; }
th { background: #eef4f3; color: #1d4245; font-weight: 600; }
tbody tr:hover td { background: rgba(238, 244, 243, .5); }
/* On a phone a wide table scrolls inside its column rather than widening the page. */
@media (max-width: 767px) {
    .column_attr table, .the_content_wrapper table, .post-wrapper-content table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
    th, td { padding: 10px; min-width: 120px; }
}

.screen-reader-text, .frm_screen_reader, .screen-reader-response, .hidden-fields-container, .display-none {
    position: absolute !important;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}
.screen-reader-text:focus { position: fixed !important; top: 8px; left: 8px; width: auto; height: auto; clip: auto; z-index: 100000; padding: 10px 16px; background: #fff; color: #1d4245; border-radius: 8px; }

.clearfix::after, .section_wrapper::after { content: ""; display: block; clear: both; }
.alignleft { float: left; margin: 0 1.5em 1em 0; }
.alignright { float: right; margin: 0 0 1em 1.5em; }
.aligncenter { display: block; margin-left: auto; margin-right: auto; }
@media (max-width: 767px) { .alignleft, .alignright { float: none; margin: 0 0 1em; } }
.scale-with-grid { max-width: 100%; height: auto; }
.hidden, [hidden] { display: none !important; }

/* ---- Page frame ------------------------------------------------------------ */

#Wrapper { position: relative; min-height: 100vh; display: flex; flex-direction: column; }
#Content { position: relative; flex: 1 0 auto; overflow-x: clip; }
.content_wrapper { position: relative; }
.sections_group { display: block; width: 100%; }

.section, .mcb-section { position: relative; box-sizing: border-box; background-position: left top; background-repeat: no-repeat; }
.mcb-section.bg-cover, .mcb-wrap.bg-cover, .column_attr.bg-cover { background-size: cover; }
.mcb-section.bg-contain, .mcb-wrap.bg-contain, .column_attr.bg-contain { background-size: contain; }
.mcb-background-overlay, .mcb-wrap-background-overlay { position: absolute; inset: 0; pointer-events: none; border-radius: inherit; }
.mcb-background-overlay:empty, .mcb-wrap-background-overlay:empty { z-index: 0; }

/* ".container" is BeTheme's title-band wrapper; designed pages use the same
   class name for their own layout, so it stops at .ppx-page. */
.section_wrapper, .container:not(.ppx-page *) {
    position: relative;
    max-width: 1220px;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    box-sizing: content-box;
    padding-left: var(--pp-gutter);
    padding-right: var(--pp-gutter);
}
.section_wrapper > *, .container:not(.ppx-page *) > * { position: relative; }
.section.full-width > .section_wrapper { max-width: 100% !important; padding-left: 0 !important; padding-right: 0 !important; }
.section.full-screen .section_wrapper { min-height: 100vh; align-content: center; }
.equal-height-wrap .section_wrapper { align-items: stretch; }

.mcb-wrap { position: relative; z-index: 1; display: flex; align-items: flex-start; box-sizing: border-box; background-position: left top; background-repeat: no-repeat; }
.mcb-wrap-inner { position: relative; display: flex; flex-wrap: wrap; align-content: flex-start; align-items: flex-start; width: 100%; align-self: stretch; }
.mcb-wrap.divider { width: 100%; height: 0 !important; }
.mcb-wrap.valign-middle > .mcb-wrap-inner { align-content: center; }
.mcb-wrap.valign-bottom > .mcb-wrap-inner { align-content: flex-end; }
.equal-height .mcb-wrap .mcb-wrap-inner { align-items: stretch; }
.equal-height .mcb-wrap .mcb-column-inner { height: calc(100% - var(--mfn-column-gap-bottom)); }
.mcb-wrap-grid > .mcb-wrap-inner { display: grid; grid-template-columns: repeat(3, 1fr); }
.mcb-wrap-grid > .mcb-wrap-inner > .vb-item { width: unset; }
.mcb-wrap-grid > .mcb-wrap-inner > .mcb-column .mcb-column-inner,
.mcb-wrap-grid > .mcb-wrap-inner > .mcb-wrap { margin: 0; }

.mcb-column, .column { position: relative; box-sizing: border-box; }
.mcb-column-inner {
    position: relative;
    margin: var(--mfn-column-gap-top) var(--mfn-column-gap-right) var(--mfn-column-gap-bottom) var(--mfn-column-gap-left);
}
.mcb-column.column_spacer .mcb-column-inner,
.page-pager .mcb-column-inner { margin-bottom: 0 !important; }
.no-margin-h .column .mcb-column-inner { margin-left: 0; margin-right: 0; }
.section.no-margin .column .mcb-column-inner, .section.no-margin-v .column .mcb-column-inner { margin-bottom: 0; }
.column-margin-0px .mcb-column-inner, .column-margin-0px.mcb-column-inner { margin-bottom: 0 !important; }
.column-margin-10px .mcb-column-inner, .column-margin-10px.mcb-column-inner { margin-bottom: 10px !important; }
.column-margin-20px .mcb-column-inner, .column-margin-20px.mcb-column-inner { margin-bottom: 20px !important; }
.column-margin-30px .mcb-column-inner, .column-margin-30px.mcb-column-inner { margin-bottom: 30px !important; }
.column-margin-40px .mcb-column-inner, .column-margin-40px.mcb-column-inner { margin-bottom: 40px !important; }
.column-margin-50px .mcb-column-inner, .column-margin-50px.mcb-column-inner { margin-bottom: 50px !important; }

.column_attr.align_left { text-align: left; }
.column_attr.align_right { text-align: right; }
.column_attr.align_center { text-align: center; }
.column_attr.align_justify { text-align: justify; }
.equal-height .column .column_attr { height: 100%; }
.column_attr > :last-child, .mfn-visualeditor-content > :last-child { margin-bottom: 0; }
.column_attr img, .mfn-visualeditor-content img { max-width: 100%; height: auto; }

/* Column widths. The plain class applies everywhere; each screen size's own
   class, when present, overrides it on that size. */
.one-sixth    { width: 16.666%; }
.one-fifth    { width: 20%; }
.one-fourth   { width: 25%; }
.one-third    { width: 33.333%; }
.two-fifth    { width: 40%; }
.one-second   { width: 50%; }
.three-fifth  { width: 60%; }
.two-third    { width: 66.666%; }
.three-fourth { width: 75%; }
.four-fifth   { width: 80%; }
.five-sixth   { width: 83.333%; }
.one          { width: 100%; }
.section_wrapper > .column.one, .container:not(.ppx-page *) > .column.one { width: 100%; }

@media (min-width: 960px) and (max-width: 1239px) {
    .laptop-one-sixth    { width: 16.666%; }
    .laptop-one-fifth    { width: 20%; }
    .laptop-one-fourth   { width: 25%; }
    .laptop-one-third    { width: 33.333%; }
    .laptop-two-fifth    { width: 40%; }
    .laptop-one-second   { width: 50%; }
    .laptop-three-fifth  { width: 60%; }
    .laptop-two-third    { width: 66.666%; }
    .laptop-three-fourth { width: 75%; }
    .laptop-four-fifth   { width: 80%; }
    .laptop-five-sixth   { width: 83.333%; }
    .laptop-one          { width: 100%; }
    .hide-laptop { display: none !important; }
}

@media (min-width: 768px) and (max-width: 959px) {
    .tablet-one-sixth    { width: 16.666%; }
    .tablet-one-fifth    { width: 20%; }
    .tablet-one-fourth   { width: 25%; }
    .tablet-one-third    { width: 33.333%; }
    .tablet-two-fifth    { width: 40%; }
    .tablet-one-second   { width: 50%; }
    .tablet-three-fifth  { width: 60%; }
    .tablet-two-third    { width: 66.666%; }
    .tablet-three-fourth { width: 75%; }
    .tablet-four-fifth   { width: 80%; }
    .tablet-five-sixth   { width: 83.333%; }
    .tablet-one          { width: 100%; }
    .hide-tablet { display: none !important; }
    /* Six or five across leaves 120px a column on a tablet: three, then. */
    .tablet-one-sixth.column_column, .tablet-one-fifth.column_column { width: 33.333%; }
}

@media (max-width: 767px) {
    .mobile-one-sixth    { width: 16.666%; }
    .mobile-one-fifth    { width: 20%; }
    .mobile-one-fourth   { width: 25%; }
    .mobile-one-third    { width: 33.333%; }
    .mobile-two-fifth    { width: 40%; }
    .mobile-one-second   { width: 50%; }
    .mobile-three-fifth  { width: 60%; }
    .mobile-two-third    { width: 66.666%; }
    .mobile-three-fourth { width: 75%; }
    .mobile-four-fifth   { width: 80%; }
    .mobile-five-sixth   { width: 83.333%; }
    .mobile-one          { width: 100%; }
    .hide-mobile { display: none !important; }
    /* A column without a phone width set stacks. */
    .mcb-wrap:not([class*="mobile-"]), .mcb-column:not([class*="mobile-"]) { width: 100%; }
    .mcb-wrap-grid > .mcb-wrap-inner { grid-template-columns: 1fr !important; }
    .column_placeholder { display: none; }
    body { --mfn-column-gap-bottom: 28px; }
}

@media (min-width: 1240px) { .hide-desktop { display: none !important; } }

/* ---- Buttons --------------------------------------------------------------- */

.button, a.button, button.button, input[type="submit"], input[type="button"], input[type="reset"], button[type="submit"], .frm_button_submit, .wpcf7-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 48px;
    padding: 14px 28px;
    border: 2px solid transparent;
    border-radius: var(--pp-radius-button, 10px);
    background: #275559;
    color: #fff;
    font: 600 16px/1.2 var(--pp-text, system-ui, sans-serif);
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(16, 40, 42, .12);
    transition: background-color .2s ease, color .2s ease, border-color .2s ease, transform .2s ease, box-shadow .2s ease;
    -webkit-appearance: none;
    appearance: none;
    max-width: 100%;
    white-space: normal;
}
.button:hover, a.button:hover, input[type="submit"]:hover, button[type="submit"]:hover, .frm_button_submit:hover, .wpcf7-submit:hover {
    background: #9edc29;
    color: #1d4245;
    transform: translateY(-1px);
    box-shadow: 0 10px 24px rgba(158, 220, 41, .3);
}
.button:active, input[type="submit"]:active, button[type="submit"]:active { transform: translateY(0); }
.button[disabled], button[disabled], input[disabled][type="submit"] { opacity: .65; cursor: progress; transform: none; }

.button_theme, a.button_theme { background: #9edc29; color: #1d4245; }
.button_theme:hover, a.button_theme:hover { background: #275559; color: #fff; }
.button_size_1 { min-height: 38px; padding: 8px 18px; font-size: 14px; }
.button_size_2 { min-height: 48px; padding: 13px 26px; font-size: 16px; }
.button_size_3 { min-height: 54px; padding: 16px 32px; font-size: 17px; }
.button_size_4 { min-height: 62px; padding: 19px 40px; font-size: 18px; }
.button_full_width, .button.button_full_width { display: flex; width: 100%; }
.button_left .button_icon { order: -1; }
.button_right .button_icon { order: 2; }
.button .button_icon { display: inline-flex; line-height: 1; }
.button .button_icon i { font-size: 1em; }
.button_label { display: inline-block; }
.column_button .mcb-column-inner { display: block; }
@media (max-width: 767px) {
    .column_button .button { width: 100%; }
}

/* ---- Images ---------------------------------------------------------------- */

.image_frame { position: relative; display: block; margin: 0; overflow: hidden; border-radius: 14px; max-width: 100%; line-height: 0; }
.image_frame.no_border { border: 0; }
.image_frame .image_wrapper { position: relative; display: block; overflow: hidden; border-radius: inherit; }
.image_frame .image_wrapper img { display: block; max-width: 100%; height: auto; margin: 0 auto; transition: transform .5s ease; }
/* Images sized by their own width attribute, capped by the column; ones that
   should fill their box say so below. */
.photo_box .image_wrapper img, .single-photo-wrapper .image_wrapper img, .blog_slider .image_wrapper img { width: 100%; }
.image_frame .image_wrapper a:hover img { transform: scale(1.03); }
.image_frame .image_wrapper .mask, .image_frame .image_links { display: none; }
.image_item.alignnone, .mfn-img-box { display: block; }
.image_frame.aligncenter { margin-left: auto; margin-right: auto; }
.column_image .mcb-column-inner { text-align: center; }
.column_image .image_frame { display: inline-block; vertical-align: top; }

.photo_box { text-align: center; }
.photo_box .image_frame { margin-bottom: 14px; }
.photo_box.without-desc .image_frame { margin-bottom: 0; }
.photo_box .desc { color: #4f6567; }
.photo_box h3, .photo_box h4 { margin-bottom: 8px; }

.content_video { position: relative; width: 100%; aspect-ratio: 16 / 9; border-radius: 14px; overflow: hidden; background: #0f1f20; }
.content_video iframe, .content_video video { position: absolute; inset: 0; width: 100%; height: 100%; }

/* ---- Content blocks ------------------------------------------------------- */

.placeholder { min-height: 1px; }

.fancy_heading { text-align: center; margin: 0 auto; max-width: 860px; }
.fancy_heading .title { margin-bottom: .3em; }
.fancy_heading .inside { color: #4f6567; font-size: 1.1em; }
.fancy_heading .fh-top { display: block; width: 46px; height: 4px; border-radius: 4px; background: #9edc29; margin: 0 auto 18px; }
.fancy_heading .fh-top:empty { display: block; }

.how_it_works { text-align: center; padding: 8px 12px; }
.how_it_works .image_wrapper { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 84px; height: 84px; margin-bottom: 18px; border-radius: 50%; background: #eef4f3; border: 2px solid #dbe5e4; }
.how_it_works .image_wrapper .image { display: none; }
.how_it_works .image_wrapper .number { font: 700 30px/1 var(--pp-display, inherit); color: #275559; }
.how_it_works .title { margin-bottom: 8px; }
.how_it_works .desc { color: #4f6567; }

/* Table of contents. */
.table_of_content {
    border: 1px solid #dbe5e4;
    border-radius: 16px;
    background: #fff;
    padding: 22px 26px;
    box-shadow: 0 1px 2px rgba(16, 40, 42, .05);
}
.table_of_content .title { display: flex; align-items: center; justify-content: space-between; gap: 12px; cursor: pointer; }
.table_of_content .title-inner { margin: 0; font-size: 19px; }
.table_of_content .title::after {
    content: "";
    flex: none;
    width: 10px; height: 10px;
    border-right: 2px solid #275559;
    border-bottom: 2px solid #275559;
    transform: rotate(45deg) translateY(-3px);
    transition: transform .2s ease;
}
.table_of_content.is-collapsed .title::after { transform: rotate(-45deg); }
.table_of_content.is-collapsed .table_of_content_wrapper { display: none; }
.table_of_content_wrapper { margin-top: 14px; }
.table_of_content ol { list-style: none; counter-reset: toc; padding: 0; margin: 0; }
.table_of_content ol li { counter-increment: toc; margin: 0; padding: 5px 0; line-height: 1.45; }
.table_of_content ol li > i { display: none; }
.table_of_content ol li a { color: #1f2d2e; display: inline; }
.table_of_content ol li a:hover { color: #275559; text-decoration: underline; text-underline-offset: 3px; }
.table_of_content ol.mfn_toc_numbers > li:not(.mfn_toc_nested)::before { content: counter(toc) ". "; color: #275559; font-weight: 700; }
.table_of_content .mfn_toc_nested { padding: 0 0 0 22px; counter-increment: none; }
.table_of_content .mfn_toc_nested ol { counter-reset: tocsub; }
.table_of_content .mfn_toc_nested ol li { counter-increment: tocsub; font-size: .94em; }
.table_of_content .mfn_toc_nested ol li::before { content: "–"; color: #9edc29; margin-right: 8px; }

/* Blog and client sliders: a row that scrolls, snapping to items; theme.js
   adds previous and next buttons. Without the script it still scrolls. */
.blog_slider, .clients_slider { position: relative; }
.blog_slider_header { display: flex; justify-content: flex-end; margin-bottom: 14px; }
.slider_navigation { display: flex; gap: 8px; }
.slider_navigation:empty { display: none; }
.slider_navigation button {
    width: 42px; height: 42px;
    display: inline-flex; align-items: center; justify-content: center;
    border: 1.5px solid #dbe5e4; border-radius: 50%;
    background: #fff; color: #275559; cursor: pointer;
    transition: background-color .2s ease, color .2s ease, border-color .2s ease;
    padding: 0; min-height: 0; box-shadow: none;
}
.slider_navigation button:hover { background: #275559; border-color: #275559; color: #fff; transform: none; }
.slider_navigation button[disabled] { opacity: .4; cursor: default; }
.slider_navigation svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

.blog_slider_ul, .clients_slider_ul {
    list-style: none;
    margin: 0; padding: 4px 2px 12px;
    display: grid;
    grid-auto-flow: column;
    gap: 24px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    scrollbar-width: thin;
    overscroll-behavior-x: contain;
}
.blog_slider_ul { grid-auto-columns: calc((100% - 48px) / 3); }
.blog_slider[data-count="2"] .blog_slider_ul { grid-auto-columns: calc((100% - 24px) / 2); }
.blog_slider[data-count="4"] .blog_slider_ul { grid-auto-columns: calc((100% - 72px) / 4); }
.blog_slider_li, .clients_slider_li { scroll-snap-align: start; margin: 0; min-width: 0; }
@media (max-width: 959px) { .blog_slider_ul, .blog_slider[data-count] .blog_slider_ul { grid-auto-columns: calc((100% - 24px) / 2); } }
@media (max-width: 599px) { .blog_slider_ul, .blog_slider[data-count] .blog_slider_ul { grid-auto-columns: 86%; gap: 16px; } }

.blog_slider .item_wrapper {
    height: 100%;
    display: flex; flex-direction: column;
    background: #fff;
    border: 1px solid #dbe5e4;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: var(--pp-shadow-card, 0 10px 30px rgba(16, 40, 42, .07));
    transition: transform .25s ease, box-shadow .25s ease;
}
.blog_slider .item_wrapper:hover { transform: translateY(-3px); box-shadow: 0 16px 40px rgba(16, 40, 42, .12); }
.blog_slider .image_frame { border-radius: 0; aspect-ratio: 2 / 1; }
.blog_slider .image_frame img { height: 100%; object-fit: cover; }
.blog_slider .date_label { margin: 18px 20px 0; font-size: 13px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: #4f6567; }
.blog_slider .desc { padding: 8px 20px 22px; display: flex; flex-direction: column; flex: 1; }
.blog_slider .desc h4 { font-size: 19px; line-height: 1.3; margin-bottom: 10px; }
.blog_slider .desc h4 a { color: #1d4245; }
.blog_slider .desc h4 a:hover { color: #275559; }
.blog_slider .desc hr { display: none; }
.blog_slider .post_excerpt { color: #4f6567; font-size: 15px; margin-bottom: 14px; }
.blog_slider .desc .button { margin-top: auto; align-self: flex-start; min-height: 0; padding: 0; background: none; box-shadow: none; color: #275559; font-weight: 600; }
.blog_slider .desc .button:hover { background: none; color: #1d4245; transform: none; box-shadow: none; }
.blog_slider.hide-more .desc .button { display: none; }

.clients_slider_ul { grid-auto-columns: calc((100% - 120px) / 6); align-items: center; }
.clients_slider[data-client-per-slide="4"] .clients_slider_ul { grid-auto-columns: calc((100% - 72px) / 4); }
.clients_slider[data-client-per-slide="5"] .clients_slider_ul { grid-auto-columns: calc((100% - 96px) / 5); }
@media (max-width: 959px) { .clients_slider_ul, .clients_slider[data-client-per-slide] .clients_slider_ul { grid-auto-columns: calc((100% - 72px) / 4); } }
@media (max-width: 599px) { .clients_slider_ul, .clients_slider[data-client-per-slide] .clients_slider_ul { grid-auto-columns: calc((100% - 32px) / 3); gap: 16px; } }
.client_wrapper { display: flex; align-items: center; justify-content: center; height: 88px; padding: 12px 16px; background: #fff; border: 1px solid #dbe5e4; border-radius: 12px; }
.client_wrapper img { max-height: 56px; width: auto; filter: grayscale(1); opacity: .75; transition: filter .25s ease, opacity .25s ease; }
.client_wrapper:hover img { filter: none; opacity: 1; }
.clients { list-style: none; padding: 0; }

/* BeTheme's FAQ module; design.css draws the cards, this opens and closes them. */
.faq .question { position: relative; }
.faq .question .title { position: relative; cursor: pointer; }
.faq .question .answer { display: none; }
.faq .question.active .answer { display: block; }
.faq .question .acc-icon-minus { display: none; }
.faq .question.active .acc-icon-minus { display: inline-block; }
.faq .question.active .acc-icon-plus { display: none; }
.faq .question .title > i { position: absolute; right: 22px; top: 50%; transform: translateY(-50%); }

/* Pricing box. */
.pricing-box {
    position: relative;
    height: 100%;
    display: flex; flex-direction: column;
    padding: 30px 28px;
    background: #fff;
    border: 1px solid #dbe5e4;
    border-radius: 18px;
    box-shadow: var(--pp-shadow-card, 0 10px 30px rgba(16, 40, 42, .07));
    text-align: center;
}
.pricing-box-featured { border: 2px solid #9edc29; box-shadow: 0 18px 44px rgba(158, 220, 41, .22); }
.pricing-box .plan-header .image img[src*="placeholders/"] { display: none; }
.pricing-box .plan-header .image:has(img[src*="placeholders/"]) { display: none; }
.pricing-box .plan-header .title { margin-bottom: 10px; }
.pricing-box .plan-header .price { font: 700 clamp(26px, 3vw, 34px)/1.15 var(--pp-display, inherit); color: #275559; margin-bottom: 14px; }
.pricing-box .plan-header .price sup { font-size: .5em; vertical-align: super; color: #4f6567; }
.pricing-box .plan-header hr { margin: 0 0 18px; height: 1px; background: #dbe5e4; }
.pricing-box .plan-inside ul { list-style: none; padding: 0; margin: 0 0 22px; text-align: left; }
.pricing-box .plan-inside li { position: relative; padding: 7px 0 7px 28px; border-bottom: 1px dashed #dbe5e4; margin: 0; }
.pricing-box .plan-inside li:last-child { border-bottom: 0; }
.pricing-box .plan-inside li::before {
    content: "";
    position: absolute; left: 2px; top: 13px;
    width: 12px; height: 7px;
    border-left: 2.5px solid #7fb81e; border-bottom: 2.5px solid #7fb81e;
    transform: rotate(-45deg);
}
.pricing-box .plan-footer { margin-top: auto; }
.pricing-box .plan-footer .button { width: 100%; }

/* ---- Title band and single post ------------------------------------------- */

#Subheader { padding: 64px 0 44px; overflow: hidden; }
#Subheader .container { display: block; }
#Subheader .column.one { width: 100%; padding: 0 var(--mfn-column-gap-left); }
#Subheader .title { margin: 0 0 12px; font-size: clamp(28px, 4.2vw, 48px); line-height: 1.12; max-width: 900px; }
#Subheader ul.breadcrumbs { list-style: none; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; margin: 0; padding: 0; font-size: 14px; }
#Subheader ul.breadcrumbs li { margin: 0; display: inline-flex; align-items: center; gap: 6px; }
#Subheader ul.breadcrumbs .mfn-breadcrumbs-separator { font-size: 10px; opacity: .8; }
@media (max-width: 767px) { #Subheader { padding: 40px 0 30px; } #Subheader ul.breadcrumbs li:not(:first-child):not(:last-child) { display: none; } }

.section-post-header { padding-top: 32px; }
.section-post-header .section_wrapper { display: block; }
.post-nav.minimal { display: flex; justify-content: flex-end; align-items: center; gap: 10px; padding: 0 var(--mfn-column-gap-right) 0 var(--mfn-column-gap-left); margin-bottom: 8px; }
.post-nav.minimal a { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; border: 1px solid #dbe5e4; color: #275559; background: #fff; font-size: 16px; }
.post-nav.minimal a:hover { background: #275559; color: #fff; border-color: #275559; }
.post-nav.minimal a svg { width: 16px; height: 16px; fill: currentColor; }
/* The title band above already shows the title as the page's h1. */
#Subheader ~ #Content .post-header .title_wrapper .entry-title { display: none; }
.post-header .title_wrapper .entry-title { font-size: clamp(26px, 3.6vw, 42px); line-height: 1.15; margin-bottom: 14px; }
.post-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 22px; color: #4f6567; font-size: 14px; margin-bottom: 24px; }
.post-meta .author-date { display: flex; flex-wrap: wrap; gap: 6px 18px; }
.post-meta .author-date > span { display: inline-flex; align-items: center; gap: 6px; }
.post-meta .label { color: #4f6567; }
.post-meta .category { position: relative; }
.post-meta .cat-btn { display: inline-flex; align-items: center; gap: 4px; padding: 5px 12px; border: 1px solid #dbe5e4; border-radius: 999px; cursor: pointer; background: #fff; }
.post-meta .cat-wrapper { display: none; position: absolute; z-index: 20; top: calc(100% + 6px); left: 0; min-width: 220px; max-width: 320px; padding: 10px 14px; background: #fff; border: 1px solid #dbe5e4; border-radius: 12px; box-shadow: 0 16px 40px rgba(16, 40, 42, .14); }
.post-meta .category:hover .cat-wrapper, .post-meta .category:focus-within .cat-wrapper, .post-meta .category.is-open .cat-wrapper { display: block; }
.post-meta .cat-wrapper ul { list-style: none; margin: 0; padding: 0; max-height: 260px; overflow: auto; }
.post-meta .cat-wrapper li { margin: 0; padding: 4px 0; }
.single-photo-wrapper .image_frame { border-radius: 18px; }
.single-photo-wrapper .image_frame img { max-height: 560px; object-fit: cover; }

.the_content_wrapper { width: 100%; padding: 0 var(--mfn-column-gap-right) 0 var(--mfn-column-gap-left); }
.the_content_wrapper h2 { margin-top: 1.6em; }
.the_content_wrapper h3 { margin-top: 1.3em; }
.the_content_wrapper img { border-radius: 12px; }

.section-page-footer:has(.page-pager .mcb-column-inner:empty),
.section-page-footer:not(:has(a)) { display: none; }

/* ---- Forms: Formidable, Contact Form 7, and anything else ---------------- */

input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"],
input[type="password"], input[type="search"], input[type="date"], input[type="datetime-local"], input[type="time"],
select, textarea {
    display: block;
    width: 100%;
    min-height: 50px;
    padding: 12px 16px;
    border: 1.5px solid #cfdcda;
    border-radius: 10px;
    background: #fff;
    color: #1f2d2e;
    font: 400 16px/1.4 var(--pp-text, system-ui, sans-serif);
    box-shadow: inset 0 1px 2px rgba(16, 40, 42, .04);
    transition: border-color .15s ease, box-shadow .15s ease;
    -webkit-appearance: none;
    appearance: none;
}
textarea { min-height: 140px; resize: vertical; }
select {
    padding-right: 44px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23275559' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 16px center;
    cursor: pointer;
}
input::placeholder, textarea::placeholder { color: #8a9c9d; opacity: 1; }
input:hover, select:hover, textarea:hover { border-color: #a9bfbd; }
input:focus, select:focus, textarea:focus { outline: none; border-color: #275559; box-shadow: 0 0 0 4px rgba(158, 220, 41, .35); }
input[aria-invalid="true"], select[aria-invalid="true"], textarea[aria-invalid="true"], .wpcf7-not-valid { border-color: #c0392b !important; }
input[type="checkbox"], input[type="radio"] { width: 18px; height: 18px; accent-color: #275559; margin: 0 8px 0 0; vertical-align: -3px; }
label { font-weight: 600; color: #1d4245; }
fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
legend { padding: 0; }

.frm_forms { max-width: 100%; text-align: left; }
.frm_forms form { margin: 0; }
.frm_fields_container { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 0 20px; }
.frm_fields_container > * { grid-column: span 12; }
.frm_fields_container > input[type="hidden"] { display: none; }
.frm_form_field { margin: 0 0 20px; }
.frm_fields_container .frm1 { grid-column: span 1; }
.frm_fields_container .frm2 { grid-column: span 2; }
.frm_fields_container .frm3, .frm_fields_container .frm_fourth { grid-column: span 3; }
.frm_fields_container .frm4, .frm_fields_container .frm_third { grid-column: span 4; }
.frm_fields_container .frm6, .frm_fields_container .frm_half { grid-column: span 6; }
.frm_fields_container .frm8, .frm_fields_container .frm_two_thirds { grid-column: span 8; }
.frm_fields_container .frm9, .frm_fields_container .frm_three_fourths { grid-column: span 9; }
.frm_fields_container .frm12, .frm_fields_container .frm_full { grid-column: span 12; }
.frm_fields_container .frm_first { grid-column-start: 1; }
.frm_fields_container .frm3.frm_first, .frm_fields_container .frm_fourth.frm_first { grid-column: 1 / span 3; }
.frm_fields_container .frm4.frm_first, .frm_fields_container .frm_third.frm_first { grid-column: 1 / span 4; }
.frm_fields_container .frm6.frm_first, .frm_fields_container .frm_half.frm_first { grid-column: 1 / span 6; }
.frm_fields_container .frm8.frm_first, .frm_fields_container .frm_two_thirds.frm_first { grid-column: 1 / span 8; }
.frm_fields_container .frm9.frm_first, .frm_fields_container .frm_three_fourths.frm_first { grid-column: 1 / span 9; }
.frm_fields_container .frm12.frm_first { grid-column: 1 / -1; }
@media (max-width: 599px) {
    .frm_fields_container > [class*="frm"] { grid-column: 1 / -1 !important; }
}
.frm_primary_label { display: block; margin: 0 0 8px; font-size: 15px; }
.frm_required { color: #c0392b; margin-left: 2px; }
.frm_description, .frm_small_text { margin-top: 6px; font-size: 13.5px; color: #4f6567; font-weight: 400; }
.frm_none_container .frm_primary_label, .frm_hidden_container .frm_primary_label { display: none; }
.frm_inside_container { position: relative; }

.frm_opt_container { display: flex; flex-wrap: wrap; gap: 10px 22px; }
.frm_checkbox, .frm_radio { margin: 0; }
.frm_checkbox label, .frm_radio label { display: inline-flex; align-items: center; font-weight: 500; color: #1f2d2e; cursor: pointer; }

/* The spam trap: a field no person should see. */
.frm_verify, [id^="frm_field_"]:has(> .frm_verify) { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }

.frm_dropzone {
    position: relative;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 8px;
    min-height: 150px;
    padding: 24px 18px;
    border: 2px dashed #a9bfbd;
    border-radius: 14px;
    background: #f5f9f8;
    text-align: center;
    cursor: pointer;
    transition: border-color .2s ease, background-color .2s ease;
}
.frm_dropzone:hover, .frm_dropzone.dz-drag-hover { border-color: #275559; background: #eef4f3; }
.frm_dropzone .dz-message { display: flex; flex-direction: column; align-items: center; gap: 8px; }
.frm_dropzone .frmsvg { width: 34px; height: 34px; fill: #275559; }
.frm_dropzone .frm_upload_text button, .frm_dropzone .frm_compact_text button {
    border: 0; background: none; padding: 0; min-height: 0; box-shadow: none;
    font: 600 16px/1.4 var(--pp-text, inherit); color: #275559; cursor: pointer;
}
.frm_dropzone .frm_upload_text button:hover { background: none; color: #1d4245; transform: none; box-shadow: none; text-decoration: underline; }
.frm_dropzone .frm_compact_text { display: none; }
.frm_dropzone .frm_small_text p { margin: 0; }

.frm_submit { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 4px; }
.frm_center_submit .frm_submit { justify-content: center; }
.frm_full_submit .frm_submit .frm_button_submit { width: 100%; }
.frm_button_submit { min-height: 54px; padding: 15px 34px; font-size: 17px; background: #9edc29; color: #1d4245; }
.frm_button_submit:hover { background: #275559; color: #fff; }
.frm_loading_form .frm_button_submit { position: relative; color: transparent !important; }
.frm_loading_form .frm_button_submit::after,
.wpcf7-form.submitting .wpcf7-submit + .wpcf7-spinner {
    content: "";
    position: absolute; left: 50%; top: 50%;
    width: 20px; height: 20px; margin: -10px 0 0 -10px;
    border: 2.5px solid rgba(29, 66, 69, .35); border-top-color: #1d4245; border-radius: 50%;
    animation: pp-spin .7s linear infinite;
}
@keyframes pp-spin { to { transform: rotate(360deg); } }

.frm_error { display: block; margin-top: 6px; font-size: 13.5px; font-weight: 600; color: #b03a2e; }
.frm_blank_field input, .frm_blank_field select, .frm_blank_field textarea, .frm_blank_field .frm_dropzone { border-color: #c0392b; }
.frm_error_style, .frm_message, .wpcf7-response-output {
    margin: 0 0 22px;
    padding: 14px 18px;
    border-radius: 12px;
    border: 1px solid;
    font-weight: 500;
}
.frm_error_style { background: #fdf0ee; border-color: #f1c4bd; color: #8e2a1f; }
.frm_message { background: #f2fae6; border-color: #cbe8a0; color: #2f5a10; }
.frm_message p:last-child, .frm_error_style p:last-child { margin: 0; }

.wpcf7 { max-width: 100%; }
.wpcf7-form p { margin: 0 0 18px; }
.wpcf7-form label { display: block; font-size: 15px; }
.wpcf7-form label br { display: none; }
.wpcf7-form-control-wrap { display: block; position: relative; margin-top: 8px; }
.wpcf7-not-valid-tip { display: block; margin-top: 6px; font-size: 13.5px; font-weight: 600; color: #b03a2e; }
.wpcf7-response-output:empty, .wpcf7-form.init .wpcf7-response-output { display: none; }
.wpcf7-form.sent .wpcf7-response-output { background: #f2fae6; border-color: #cbe8a0; color: #2f5a10; }
.wpcf7-form.invalid .wpcf7-response-output, .wpcf7-form.failed .wpcf7-response-output, .wpcf7-form.spam .wpcf7-response-output { background: #fdf0ee; border-color: #f1c4bd; color: #8e2a1f; }
.wpcf7-submit { min-width: 180px; background: #9edc29; color: #1d4245; }
.wpcf7-submit:hover { background: #275559; color: #fff; }
.wpcf7-spinner { display: none; }
@media (max-width: 599px) { .wpcf7-submit { width: 100%; } }

/* ---- Lightbox (theme.js) --------------------------------------------------- */

.pp-lightbox { position: fixed; inset: 0; z-index: 10000; display: flex; align-items: center; justify-content: center; padding: 24px; background: rgba(10, 24, 25, .9); }
.pp-lightbox img { max-width: min(1400px, 100%); max-height: calc(100vh - 48px); width: auto; height: auto; border-radius: 10px; box-shadow: 0 30px 80px rgba(0, 0, 0, .5); }
.pp-lightbox button { position: absolute; top: 16px; right: 16px; width: 46px; height: 46px; min-height: 0; padding: 0; border-radius: 50%; background: rgba(255, 255, 255, .12); color: #fff; font-size: 24px; line-height: 1; box-shadow: none; }
.pp-lightbox button:hover { background: #9edc29; color: #1d4245; transform: none; }

/* ---- Before and after (theme.js) -------------------------------------------- */

.before_after { position: relative; overflow: hidden; border-radius: 14px; line-height: 0; user-select: none; touch-action: pan-y; --pp-ba: 50%; }
.before_after > img { display: block; width: 100%; height: auto; }
.before_after > img + img { position: absolute; inset: 0; height: 100%; object-fit: cover; clip-path: inset(0 0 0 var(--pp-ba)); }
.before_after .pp-ba-handle { position: absolute; top: 0; bottom: 0; left: var(--pp-ba); width: 3px; margin-left: -1.5px; background: #fff; box-shadow: 0 0 10px rgba(0, 0, 0, .35); cursor: ew-resize; }
.before_after .pp-ba-handle::after {
    content: "";
    position: absolute; top: 50%; left: 50%;
    width: 44px; height: 44px; margin: -22px 0 0 -22px;
    border-radius: 50%; border: 3px solid #fff; background: rgba(29, 66, 69, .55);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6l-6 6 6 6M15 6l6 6-6 6'/%3E%3C/svg%3E");
    background-size: 22px; background-position: center; background-repeat: no-repeat;
}
.before_after .pp-ba-label { position: absolute; top: 14px; padding: 5px 12px; border-radius: 999px; background: rgba(29, 66, 69, .75); color: #fff; font-size: 12px; line-height: 1.4; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; pointer-events: none; }
.before_after .pp-ba-label--before { left: 14px; }
.before_after .pp-ba-label--after { right: 14px; }
.before_after input[type="range"] { position: absolute; inset: 0; width: 100%; height: 100%; min-height: 0; margin: 0; opacity: 0; cursor: ew-resize; border: 0; padding: 0; }

/* ---- Header ----------------------------------------------------------------- */

.pp-header {
    position: sticky;
    top: 0;
    z-index: 900;
    background: var(--pp-deep, #1d4245);
    color: #fff;
    transition: box-shadow .2s ease, background-color .2s ease;
}
.pp-header.is-scrolled { box-shadow: 0 8px 30px rgba(8, 24, 25, .25); }
body.admin-bar .pp-header { top: 32px; }
.pp-header__bar {
    max-width: 1440px;
    margin: 0 auto;
    min-height: var(--pp-header-h);
    padding: 0 clamp(16px, 3vw, 36px);
    display: flex;
    align-items: center;
    gap: 24px;
}
.pp-header__logo { flex: none; display: inline-flex; align-items: center; }
.pp-header__logo img { display: block; width: auto; height: 40px; }
@media (max-width: 767px) { .pp-header__logo img { height: 32px; } }

.pp-nav { flex: 1; display: flex; justify-content: center; min-width: 0; }
.pp-nav__list { list-style: none; display: flex; align-items: center; gap: 2px; margin: 0; padding: 0; }
.pp-nav__item { position: relative; margin: 0; }
.pp-nav__link {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 10px 14px;
    border-radius: 8px;
    color: #fff;
    font-weight: 600;
    font-size: 15.5px;
    line-height: 1.2;
    white-space: nowrap;
}
.pp-nav__link:hover, .pp-nav__item.is-open > .pp-nav__link, .pp-nav__item:focus-within > .pp-nav__link { color: var(--pp-lime, #9edc29); background: rgba(255, 255, 255, .06); }
.pp-nav__item.current-menu-item > .pp-nav__link, .pp-nav__item.current-menu-ancestor > .pp-nav__link, .pp-nav__link[aria-current="page"] { color: var(--pp-lime, #9edc29); }
.pp-nav__caret { width: 12px; height: 12px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; transition: transform .2s ease; }
.pp-nav__item.is-open > .pp-nav__link .pp-nav__caret { transform: rotate(180deg); }

.pp-nav__panel {
    position: absolute;
    top: calc(100% + 10px);
    left: 50%;
    z-index: 950;
    visibility: hidden;
    opacity: 0;
    transform: translate(-50%, 6px);
    transition: opacity .18s ease, transform .18s ease, visibility 0s linear .18s;
    background: #fff;
    color: #1f2d2e;
    border-radius: 16px;
    box-shadow: 0 24px 60px rgba(8, 24, 25, .22), 0 2px 6px rgba(8, 24, 25, .08);
}
.pp-nav__panel::before { content: ""; position: absolute; left: 0; right: 0; top: -12px; height: 12px; }
.pp-nav__item:hover > .pp-nav__panel, .pp-nav__item.is-open > .pp-nav__panel, .pp-nav__item:focus-within > .pp-nav__panel {
    visibility: visible; opacity: 1; transform: translate(-50%, 0); transition-delay: 0s;
}
.pp-nav__dropdown { list-style: none; margin: 0; padding: 10px; min-width: 240px; }
.pp-nav__dropdown li { margin: 0; }
.pp-nav__dropdown a { display: block; padding: 9px 14px; border-radius: 9px; color: #1f2d2e; font-weight: 500; font-size: 15px; }
.pp-nav__dropdown a:hover { background: #eef4f3; color: #275559; }

.pp-mega { display: grid; grid-template-columns: minmax(0, 1fr) 250px; width: min(1080px, calc(100vw - 48px)); overflow: hidden; }
.pp-nav__item--mega { position: static; }
.pp-nav__item--mega > .pp-nav__panel { top: calc(100% - 6px); }
.pp-mega__grid { list-style: none; margin: 0; padding: 22px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px 14px; }
.pp-mega__item { margin: 0; }
.pp-mega__link { display: flex; gap: 12px; align-items: flex-start; padding: 10px; border-radius: 12px; color: #1f2d2e; }
.pp-mega__link:hover { background: #eef4f3; color: #1d4245; }
.pp-mega__link .pp-icon {
    flex: none;
    width: 38px; height: 38px;
    padding: 8px;
    border-radius: 10px;
    background: #eef4f3;
    fill: none; stroke: #275559; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round;
    transition: background-color .2s ease, stroke .2s ease;
}
.pp-mega__link:hover .pp-icon { background: #275559; stroke: #9edc29; }
.pp-mega__text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.pp-mega__label { font-weight: 700; font-size: 15px; color: #1d4245; }
.pp-mega__desc { font-size: 13px; line-height: 1.4; color: #4f6567; }
.pp-mega__sub { list-style: none; margin: 2px 0 6px 58px; padding: 0; }
.pp-mega__sub li { margin: 0; }
.pp-mega__sub a { display: block; padding: 3px 0; font-size: 13.5px; color: #4f6567; }
.pp-mega__sub a:hover { color: #275559; }
.pp-mega__more a { color: #275559; font-weight: 600; }
.pp-mega__aside { padding: 26px 24px; background: var(--pp-deep, #1d4245); color: #dfeceb; display: flex; flex-direction: column; gap: 10px; align-items: flex-start; }
.pp-mega__aside-title { margin: 0; color: #fff; font: 700 19px/1.25 var(--pp-display, inherit); }
.pp-mega__aside-text { margin: 0 0 6px; font-size: 14px; }
.pp-mega__all { color: var(--pp-lime, #9edc29); font-weight: 600; font-size: 14px; }
.pp-mega__all:hover { color: #fff; }

.pp-header__actions { flex: none; display: flex; align-items: center; gap: 12px; margin-left: auto; }
.pp-header__actions .pp-lang { margin: 0; }
.pp-header__cta { min-height: 44px; padding: 10px 20px; font-size: 15px; }
.pp-header__toggle {
    display: none;
    width: 46px; height: 46px; min-height: 0; padding: 0;
    align-items: center; justify-content: center;
    border: 1.5px solid rgba(255, 255, 255, .25); border-radius: 10px;
    background: transparent; color: #fff; box-shadow: none;
}
.pp-header__toggle:hover { background: rgba(255, 255, 255, .1); color: #fff; transform: none; box-shadow: none; }
.pp-header__toggle svg, .pp-drawer__close svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }

@media (max-width: 1239px) {
    .pp-nav__link { padding: 10px 10px; font-size: 15px; }
    .pp-mega__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1099px) {
    .pp-nav, .pp-header__actions > .pp-lang { display: none; }
    .pp-header__toggle { display: inline-flex; }
}
@media (max-width: 479px) { .pp-header .pp-header__cta { display: none; } }
@media (max-width: 599px) { .pp-header .pp-header__cta { min-height: 40px; padding: 8px 14px; font-size: 14px; } .pp-header__bar { gap: 12px; } }

.pp-drawer { position: fixed; inset: 0; z-index: 1000; }
.pp-drawer[hidden] { display: none; }
.pp-drawer__backdrop { position: absolute; inset: 0; background: rgba(8, 24, 25, .55); animation: pp-fade .2s ease; }
.pp-drawer__panel {
    position: absolute; top: 0; right: 0; bottom: 0;
    width: min(380px, 88vw);
    display: flex; flex-direction: column;
    background: var(--pp-deep, #1d4245);
    color: #fff;
    overflow-y: auto;
    overscroll-behavior: contain;
    animation: pp-slide .25s ease;
}
@keyframes pp-fade { from { opacity: 0; } }
@keyframes pp-slide { from { transform: translateX(100%); } }
@media (prefers-reduced-motion: reduce) { .pp-drawer__backdrop, .pp-drawer__panel { animation: none; } }
.pp-drawer__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 18px; border-bottom: 1px solid rgba(255, 255, 255, .1); }
.pp-drawer__head .pp-header__logo img { height: 30px; }
.pp-drawer__close { width: 44px; height: 44px; min-height: 0; padding: 0; border-radius: 10px; background: rgba(255, 255, 255, .08); color: #fff; box-shadow: none; display: inline-flex; align-items: center; justify-content: center; border: 0; }
.pp-drawer__close:hover { background: rgba(255, 255, 255, .16); color: #fff; transform: none; box-shadow: none; }
.pp-drawer__menu { list-style: none; margin: 0; padding: 10px 10px 18px; }
.pp-drawer__menu > li { margin: 0; border-bottom: 1px solid rgba(255, 255, 255, .07); }
.pp-drawer__menu a, .pp-drawer__menu summary { display: flex; align-items: center; justify-content: space-between; padding: 14px 10px; color: #fff; font-weight: 600; font-size: 16px; cursor: pointer; }
.pp-drawer__menu summary { list-style: none; }
.pp-drawer__menu summary::-webkit-details-marker { display: none; }
.pp-drawer__menu summary::after { content: ""; width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform .2s ease; margin-right: 4px; }
.pp-drawer__menu details[open] > summary::after { transform: rotate(-135deg); }
.pp-drawer__menu details[open] > summary, .pp-drawer__menu a:hover { color: var(--pp-lime, #9edc29); }
.pp-drawer__menu details ul { list-style: none; margin: 0 0 10px; padding: 0 0 0 12px; }
.pp-drawer__menu details li { margin: 0; }
.pp-drawer__menu details a { padding: 9px 10px; font-weight: 500; font-size: 15px; color: #d3e3e1; }
.pp-drawer__foot { margin-top: auto; padding: 18px; display: flex; flex-direction: column; gap: 14px; border-top: 1px solid rgba(255, 255, 255, .1); }
.pp-drawer__foot .pp-btn { width: 100%; justify-content: center; }
.pp-drawer__foot .pp-lang { margin: 0; }
body.pp-drawer-open { overflow: hidden; }

/* The front page's opening and the title band were padded to sit under
   the old see-through header; this header takes its own room. */
body.pp-own .pp-hero { padding-top: 72px; }
@media (max-width: 959px) { body.pp-own .pp-hero { padding-top: 48px; } }

/* ---- Footer ----------------------------------------------------------------- */

.pp-footer { background: #142f31; color: #c9dad8; font-size: 15px; margin-top: auto; }
.pp-footer__inner {
    max-width: 1220px;
    margin: 0 auto;
    padding: 64px var(--pp-gutter) 40px;
    padding-left: calc(var(--pp-gutter) + 12px);
    padding-right: calc(var(--pp-gutter) + 12px);
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) repeat(auto-fit, minmax(150px, 1fr));
    gap: 36px 32px;
}
.pp-footer__brand img { display: block; width: auto; height: 52px; margin-bottom: 16px; }
.pp-footer__note { margin: 0 0 18px; max-width: 34ch; line-height: 1.6; }
.pp-footer__social { display: flex; gap: 10px; }
.pp-footer__social a { width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: rgba(255, 255, 255, .08); color: #fff; font-size: 16px; }
.pp-footer__social a:hover { background: var(--pp-lime, #9edc29); color: #1d4245; }
.pp-footer__title { margin: 0 0 14px; color: #fff; font: 700 16px/1.3 var(--pp-display, inherit); letter-spacing: 0; }
.pp-footer__col ul { list-style: none; margin: 0; padding: 0; }
.pp-footer__col li { margin: 0 0 9px; }
.pp-footer__col a { color: #c9dad8; }
.pp-footer__col a:hover { color: var(--pp-lime, #9edc29); }
.pp-footer__contact a, .pp-footer__contact li { display: inline-flex; align-items: flex-start; gap: 10px; overflow-wrap: anywhere; }
.pp-footer__contact i { margin-top: 4px; color: var(--pp-lime, #9edc29); width: 16px; text-align: center; flex: none; }
.pp-footer__bottom {
    max-width: 1220px;
    margin: 0 auto;
    padding: 20px calc(var(--pp-gutter) + 12px);
    border-top: 1px solid rgba(255, 255, 255, .1);
    display: flex; align-items: center; justify-content: space-between; gap: 16px;
    font-size: 14px;
}
.pp-footer__bottom p { margin: 0; }
.pp-footer__bottom a { color: #fff; }
.pp-footer__top { width: 42px; height: 42px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: rgba(255, 255, 255, .08); color: #fff !important; }
.pp-footer__top:hover { background: var(--pp-lime, #9edc29); color: #1d4245 !important; }
.pp-footer__top svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 959px) {
    .pp-footer__inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pp-footer__brand { grid-column: 1 / -1; }
}
@media (max-width: 479px) {
    .pp-footer__inner { grid-template-columns: minmax(0, 1fr); padding-top: 48px; }
}
/* Room for the phone call-to-action bar. */
@media (max-width: 767px) { .pp-footer__bottom { padding-bottom: 84px; } }
