/* Raaijmakers Installatietechniek: the look of the previous site (Jupiter), on the Missie Online base theme.
   Values are measured from the old site at 1440 and 375 px. */

body { line-height: 1.66; }
p { line-height: 1.4em; margin: 0 0 20px; }
a { color: #bf0a31; text-decoration: none; }
a:hover { color: #2e2e2e; }
h1, h2, h3, h4, h5, h6 { font-weight: 400; line-height: 1.3em; }
.rit-grid { max-width: 1140px; margin: 0 auto; }

/* ---------- Top bar ---------- */
.rit-toolbar { background: #efefef; height: 35px; font-size: 13px; line-height: 35px; color: #646569; }
.rit-toolbar__inner { display: flex; align-items: center; gap: 0 16px; padding: 0 20px; }
.rit-toolbar__contact { display: inline-flex; align-items: center; gap: 10px; }
.rit-toolbar__contact svg { width: 16px; height: 16px; fill: #646569; }
.rit-toolbar__contact a, .rit-toolbar__tagline { color: #646569; }
.rit-search { position: relative; margin-left: auto; margin-right: 0; }
.rit-search input { width: 90px; height: 22px; padding: 0 24px 0 8px; border: 0; background: #fff; color: #c7c7c7; font: inherit; font-size: 12px; vertical-align: middle; }
.rit-search input::placeholder { color: #c7c7c7; }
.rit-search button { position: absolute; top: 50%; right: 4px; width: 16px; height: 16px; padding: 0; border: 0; background: none; transform: translateY(-50%); cursor: pointer; }
.rit-search button svg { width: 14px; height: 14px; fill: #c7c7c7; }

/* ---------- Logo row ---------- */
.rit-header { position: relative; z-index: 300; background: #fff; }
.rit-header__logo-row { }
.rit-header__inner { display: flex; align-items: center; height: 100px; }
.rit-logo { display: block; height: 100px; }
.rit-logo img { display: block; width: auto; height: 100px; max-height: none; }
.rit-burger, .rit-toolbar-toggle { display: none; }

/* ---------- Red menu bar ---------- */
.rit-nav { position: relative; box-sizing: border-box; background: #bf0a31; border-top: 1px solid #fff; height: 51px; }
.rit-menu { display: flex; list-style: none; margin: 0; padding: 0; }
.rit-menu > li { position: relative; }
.rit-menu > li > a { display: flex; align-items: center; height: 50px; padding: 14px; color: #fff; font-size: 17px; line-height: 23px; text-transform: capitalize; }
.rit-menu > li > a:hover, .rit-menu > li.current-menu-item > a, .rit-menu > li.current-menu-ancestor > a { color: #fff; }
.rit-menu__arrow { display: inline-flex; margin-right: 8px; }
.rit-menu .menu-item-has-children > a { padding-right: 32px; }
.rit-menu .menu-item-has-children > a .rit-menu__arrow { position: absolute; right: 14px; top: 50%; margin: -8px 0 0; }
.rit-menu__arrow svg { width: 16px; height: 16px; fill: #fff; }
.rit-menu .sub-menu { position: absolute; top: 100%; left: 0; z-index: 20; width: 230px; margin: 0; padding: 8px 0; list-style: none; background: #333; border-top: 3px solid #bf0a31; opacity: 0; visibility: hidden; transform: translateY(10px); transition: opacity .2s, transform .2s, visibility 0s linear .2s; }
.rit-menu li:hover > .sub-menu, .rit-menu li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; transition: opacity .2s, transform .2s; }
.rit-menu .sub-menu a { display: block; padding: 10px 20px; color: #b3b3b3; font-size: 12px; line-height: 18px; letter-spacing: 1px; text-transform: uppercase; }
.rit-menu .sub-menu a:hover { color: #fff; }

/* Compact menu bar while scrolling, as before. */
.mo-scrolled .rit-nav { position: fixed; top: 0; left: 0; right: 0; z-index: 400; animation: rit-slide .3s ease; }
.mo-scrolled .rit-header { padding-bottom: 51px; }
@keyframes rit-slide { from { transform: translateY(-100%); } to { transform: none; } }
@media (prefers-reduced-motion: reduce) { .mo-scrolled .rit-nav { animation: none; } }

/* ---------- Mobile header ---------- */
@media (max-width: 1140px) {
	.rit-toolbar__inner, .rit-header__inner, .rit-nav .rit-grid { padding: 0 20px; }
}
@media (max-width: 1140px) {
	.rit-nav { display: none; }
	.rit-toolbar { display: none; height: auto; padding: 10px 0; }
	.rit-toolbar.is-open { display: block; }
	.rit-toolbar__inner { flex-wrap: wrap; justify-content: center; }
	.rit-header__inner { position: relative; height: 90px; padding: 0 20px 0 0; }
	.rit-logo { height: auto; }
	.rit-logo img { width: 160px; height: auto; }
	.rit-burger { display: block; margin-left: auto; width: 38px; height: 38px; padding: 10px 7px; }
	.rit-burger span { height: 2px; margin: 0 0 6px; background: #444; }
	.rit-toolbar-toggle { display: flex; position: absolute; top: 0; left: 50%; width: 24px; height: 24px; padding: 4px; margin-left: -12px; border: 0; background: none; cursor: pointer; }
	.rit-toolbar-toggle svg { width: 16px; height: 16px; fill: #bf0a31; }
	.mo-scrolled .rit-header { padding-bottom: 0; }
}

/* Mobile menu: white panel below the logo row, as Jupiter's responsive menu (measured at 375 px). */
.rit-mnav { display: none; }
@media (max-width: 1140px) {
	.rit-mnav.mo-drawer { position: static; inset: auto; z-index: auto; visibility: visible; }
	.mo-menu-open .rit-mnav { display: block; }
	.rit-mnav .rit-mnav__panel { position: static; width: auto; padding: 0; overflow: visible; transform: none; transition: none; background: #fff; }
	.rit-mnav__menu { margin: 0; padding: 0; list-style: none; }
	.rit-mnav__menu > li { position: relative; margin: 0; border-bottom: 1px solid rgba(128, 128, 128, .2); }
	.rit-mnav__menu > li > a { display: block; padding: 15px 20px; border-top: 1px solid rgba(255, 255, 255, .1); color: #444; font-size: 13px; font-weight: 700; line-height: 13px; text-transform: uppercase; }
	.rit-mnav__menu .rit-menu__arrow { display: inline; margin: 0; }
	.rit-mnav__menu .rit-menu__arrow svg { display: inline; width: 16px; height: 16px; margin: 0 6px -1px 0; vertical-align: baseline; fill: #444; }
	.rit-mnav__menu .menu-item-has-children > a .rit-menu__arrow { display: none; }
	.rit-mnav__toggle { position: absolute; top: 0; right: 0; width: 70px; height: 44px; padding: 0; border: 0; background: none; cursor: pointer; opacity: .7; }
	.rit-mnav__toggle:hover, .rit-mnav__toggle[aria-expanded="true"] { opacity: 1; }
	.rit-mnav__toggle svg { width: 16px; height: 16px; margin-top: 6px; fill: #444; }
	.rit-mnav__menu .sub-menu { display: none; margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(128, 128, 128, .2); }
	.rit-mnav__menu li.is-open > .sub-menu { display: block; }
	.rit-mnav__menu .sub-menu a { display: block; padding: 12px 15px; border-top: 1px solid rgba(255, 255, 255, .1); color: #444; font-size: 13px; line-height: 13px; }
	.rit-mnav__search { position: relative; margin: 10px; }
	.rit-mnav__search input { display: block; width: 100%; box-sizing: border-box; height: 41px; margin: 0 0 4px; padding: 12px; border: 1px solid rgba(0, 0, 0, .15); border-radius: 0; background: rgba(0, 0, 0, .02); color: #444; font: 13px Arial, sans-serif; -webkit-appearance: none; }
	.rit-mnav__search input::placeholder { color: #9e9e9e; }
	.rit-mnav__search button { position: absolute; top: 0; right: 0; width: 50px; height: 41px; padding: 0; border: 0; background: none; cursor: pointer; }
	.rit-mnav__search button svg { width: 19px; height: 19px; fill: #b3b3b3; }
	/* burger turns into a cross while the menu is open */
	.rit-burger span { transition: transform .2s, opacity .2s; }
	.mo-menu-open .rit-burger span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
	.mo-menu-open .rit-burger span:nth-child(2) { opacity: 0; }
	.mo-menu-open .rit-burger span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
}

/* ---------- Content grid (two kinds of rows, as Jupiter laid them out) ---------- */

.entry-content > .sb-section .sb-section__inner { max-width: 1140px; padding: 0; }
.entry-content > .sb-section .sb-row { margin: 0; }
.entry-content > .sb-section .sb-col { padding-left: 15px; padding-right: 15px; }
/* Plain rows: 20 px grid padding and a row shifted 15 px to the left. */
.entry-content > .sb-section.mo-row .sb-section__inner { padding: 0 20px; }
.entry-content > .sb-section.mo-row .sb-row { margin-left: -15px; margin-right: 15px; }
.entry-content > .sb-section--full .sb-section__inner { max-width: none; }
.entry-content > .sb-section--full .sb-col { padding-left: 15px; padding-right: 15px; }
.entry-content > .sb-section--full .sb-col:has(> .sb-col__inner > .sb-slides) { padding-left: 0; padding-right: 0; }
@media (max-width: 767px) {
	.entry-content > .sb-section .sb-section__inner { padding: 0 20px; }
	.entry-content > .sb-section .sb-col { padding-left: 0; padding-right: 0; }
	.entry-content > .sb-section.mo-row .sb-row { margin: 0; }
	.entry-content > .sb-section--full .sb-section__inner { padding: 0 20px; }
}

/* Text */
.sb-text p { margin-bottom: 20px; }
.sb-text > :last-child { margin-bottom: 0; }
.entry-content .sb-text > p:last-child { margin-bottom: 20px; }
.sb-text.mo-box { line-height: 1.66; }
.sb-text.mo-box > p:last-child { margin-bottom: 20px; }


/* Divider */
.sb-divider { line-height: 0; }

/* Icon boxes ("simple ultimate") */
.sb-ib__title { margin-bottom: 9px; line-height: 1.3em; font-family: inherit; }
.sb-ib__text p { line-height: 1.4em; margin-bottom: 0; }

/* Buttons as in Jupiter (flat, bold, wide letters) */
.sb-button.mo-jbtn .sb-btn, .mo-jbtn .sb-btn { font-family: inherit; font-weight: 700; letter-spacing: 2px; border-radius: 0; border-width: 0; }
.sb-button.mo-jbtn .sb-btn--l { font-size: 14px; line-height: 14px; padding: 20px 28px; }
.sb-button.mo-jbtn .sb-btn--m { font-size: 12px; line-height: 12px; padding: 14px 24px; letter-spacing: 1px; }

/* Slider (edge slider) */
.mo-edge .sb-slides__title { font-family: inherit; margin-bottom: 20px; line-height: 1.2em; }
.mo-edge .sb-slides__text { font-size: 25px; line-height: 40px; font-weight: 300; margin: 0 0 30px; }
.mo-edge .sb-slides__text p { line-height: inherit; margin: 0; font-size: inherit; color: inherit; }
.mo-edge .sb-slides__buttons { margin-top: 0; }
.mo-edge .sb-slides__inner { width: min(798px, 70%); }
.mo-edge .sb-slides__btn { margin-bottom: 10px; }
.mo-edge .sb-slides__btn { padding: 18px 28px; border: 2px solid #fde438; border-radius: 3px; background: #fde438; color: #000; font-size: 14px; line-height: 14px; font-weight: 700; letter-spacing: 2px; }
.mo-edge .sb-slides__btn:hover { background: transparent; color: #fde438; }
@media (max-width: 767px) {
	.mo-edge .sb-slides__title { font-size: 25px; }
	.mo-edge .sb-slides__text { font-size: 16px; line-height: 24px; margin-bottom: 15px; }
}

/* Logos */
/* Jupiter clients: logos at 80% opacity. Carousel (flexslider, item 180 px, 1 to 6 items): a 170x160
   cover tile 9 px in. Grid: logo at its own size in a 160 px box, 5 px around; 4/3/2/1 columns. */
.mo-clients .sb-logos__item img { opacity: .8; }
.mo-clients.sb-logos--carousel .sb-logos__item { flex: 0 0 min(100%, max(180px, calc(100% / 6))); justify-content: flex-start; padding: 0 0 0 9px; border: 0; }
.mo-clients.sb-logos--carousel .sb-logos__item img { width: 170px; max-width: none; height: 160px; max-height: none; object-fit: cover; }
.mo-clients.sb-logos--grid .sb-logos__track { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; }
.mo-clients.sb-logos--grid .sb-logos__item { height: 160px; margin: 5px; padding: 0; border: 0; overflow: hidden; }
.mo-clients.sb-logos--grid .sb-logos__item img { max-width: none; height: auto; max-height: none; }
@media (max-width: 960px) { .mo-clients.sb-logos--grid .sb-logos__track { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767px) { .mo-clients.sb-logos--grid .sb-logos__track { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 550px) { .mo-clients.sb-logos--grid .sb-logos__track { grid-template-columns: 1fr; } }
.mo-clients.sb-logos--carousel { padding-top: 25px; }

/* Portfolio */
.mo-portfolio .sb-ocard__overlay { background: rgba(191, 10, 49, .85); }

/* Form (Gravity Forms look) */
.mo-form .sb-field__label, .mo-form label { font-size: 16px; font-weight: 700; color: #353535; }
.mo-form input[type=text], .mo-form input[type=email], .mo-form input[type=tel], .mo-form textarea { width: 100%; padding: 8px; border: 1px solid #e3e3e3; background: #fdfdfd; font-size: 15px; color: #767676; }
.mo-form .sb-form__submit { padding: 12px 15px; border: 0; background: #bf0a31; color: #fff; font-size: 13px; line-height: 13px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; }

/* Map */
.mo-map iframe { display: block; width: 100%; border: 0; }

/* ---------- Footer ---------- */
.rit-footer { background: #bf0a31; color: #fff; font-size: 14px; padding-top: 20px; }
.rit-footer__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 40px 20px; }
.rit-footer__col { padding: 0 22px; }
.rit-footer .widget { margin-bottom: 80px; }
.rit-footer .widget-title { margin-top: 0; margin-bottom: 15px; font-size: 18px; line-height: 28.22px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: #fff; }
.rit-footer p { font-size: 14px; line-height: 1.4em; color: #fff; margin-bottom: 20px; }
.rit-footer a { color: #fff; }
.rit-footer-menu, .rit-footer-menu .sub-menu { list-style: none; margin: 0; padding: 0; }
.rit-footer-menu a { display: inline-block; padding: 5px 15px 5px 5px; line-height: 28.22px; }
.rit-footer-menu .current-menu-item > a { font-weight: 700; background: rgba(0, 0, 0, .03); }
.rit-footer-menu .sub-menu { display: none; }
.rit-footer-menu__arrow { display: inline-flex; margin-right: 8px; }
.rit-footer-menu__arrow svg { width: 5px; height: 14px; fill: #fff; }
@media (max-width: 767px) { .rit-footer__grid { grid-template-columns: 1fr; padding: 40px 5px; } }

.rit-go-top { position: fixed; right: 15px; transform: translateX(80px); bottom: 15px; z-index: 500; display: flex; align-items: center; justify-content: center; width: 45px; height: 45px; border-radius: 4px; background: rgba(0, 0, 0, .2); transition: transform .3s; }
.rit-go-top svg { width: 16px; height: 16px; fill: #fff; }
.mo-scrolled .rit-go-top { transform: none; }
.mo-form .mo-sublabel .sb-field__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.mo-form .sb-field__desc { font-size: 15px; padding-top: 5px; color: #353535; }

/* Icon boxes in the "simple ultimate" style keep the room of the icon, also without one. */
.sb-ib.mo-ib-simple-ultimate { position: relative; padding-left: 65px; padding-right: 15px; }
.sb-ib.mo-ib-simple-ultimate .sb-ib__icon { position: absolute; left: 0; top: 2px; padding: 0; }
.sb-ib.mo-ib-simple-ultimate.has-icon { padding-left: 48px; min-height: 34px; }
.sb-ib.mo-ib-simple-ultimate.has-icon .sb-ib__title { padding-top: 6px; }
.sb-ib.mo-ib-simple-ultimate .sb-ib__title { line-height: 1.3em; }

/* Portfolio carousel (Jupiter "classic"): red layer and a dark title box on hover. */
.mo-portfolio .sb-ocard__link { overflow: visible; }
.mo-portfolio .sb-ocard__media { overflow: hidden; }
.mo-portfolio .sb-ocard__overlay { background: none; opacity: 1; justify-content: flex-end; padding: 0; }
.mo-portfolio .sb-ocard__media::after { content: ""; position: absolute; inset: 0; background: #bf0a31; opacity: 0; transition: opacity .2s; }
.mo-portfolio .sb-ocard__link:hover .sb-ocard__media::after { opacity: .6; }
.mo-portfolio .sb-ocard__link:hover img { transform: none; }
.mo-portfolio .sb-ocard__title, .mo-portfolio .sb-ocard__terms { position: relative; width: 240px; max-width: 90%; margin: 0 auto; background: #222; opacity: 0; transform: translateY(6px); transition: all .15s ease-in-out; }
.mo-portfolio .sb-ocard__title { padding: 14px 14px 4px; border-radius: 2px 2px 0 0; font-family: inherit; font-size: 12px; font-weight: 700; color: #fff; }
.mo-portfolio .sb-ocard__terms { padding: 0 14px 14px; border-radius: 0 0 2px 2px; font-size: 12px; color: #999; }
.mo-portfolio .sb-ocard__link:hover .sb-ocard__title, .mo-portfolio .sb-ocard__link:hover .sb-ocard__terms { opacity: 1; transform: none; transition-delay: .2s; }
.mo-portfolio .sb-ocard__media { position: relative; }

/* Inner rows (lifted out of a column): columns without gutter inside the column's 15 px padding. */
.entry-content > .sb-section.mo-inner .sb-section__inner { padding: 0 15px; }
.entry-content > .sb-section.mo-inner .sb-col { padding-left: 15px; padding-right: 15px; }
@media (max-width: 767px) { .entry-content > .sb-section.mo-inner .sb-section__inner { padding: 0 20px; } }

/* Jupiter dividers use padding, so their space never collapses with the heading above. */
.entry-content .sb-divider { margin-top: 0; padding-top: var(--sb-mt, 0); }

/* The carousel keeps room under the photos for the title box that slides in on hover. */
.mo-portfolio.sb-posts--carousel { padding-bottom: 60px; }

/* Form: spacing and field sizes of the previous Gravity Forms form. */
.mo-form { margin-top: 0; }
.mo-form .sb-field { margin-top: 24px; }
.mo-form .sb-form__fields > .sb-field:first-child { margin-top: 0; }
.mo-form .sb-field__label { display: block; height: auto; margin: 0; padding-top: 0; line-height: 28.22px; }
.mo-form .sb-field__control { margin-top: 8px; }
.mo-form .sb-field input[type=text], .mo-form .sb-field input[type=email], .mo-form .sb-field input[type=tel] { display: block; height: 35px; min-height: 0; margin: 0; padding: 8px; line-height: normal; border-radius: 0; }
.mo-form .sb-field textarea { height: 192px; margin: 0; padding: 8px; border-radius: 0; }
.mo-form .sb-field__desc { margin: 0; padding-top: 5px; font-size: 15px; line-height: 28.22px; opacity: 1; }
.mo-form .sb-field.mo-sublabel { margin-top: 8px; }
.mo-form .sb-field.mo-sublabel .sb-field__control { margin-top: 0; }
.mo-form .sb-form__footer { margin-top: 14px; padding: 16px 0 8px; }

/* ---------- Phone (measured at 375 px) ---------- */
@media (max-width: 767px) {
	.entry-content > .sb-section .sb-col, .entry-content > .sb-section--full .sb-col { padding-left: 15px; padding-right: 15px; }
	.entry-content > .sb-section--full .sb-col:has(> .sb-col__inner > .sb-slides) { padding-left: 0; padding-right: 0; }
	.entry-content > .sb-section.mo-inner .sb-section__inner { padding: 0 35px; }
	.entry-content > .sb-section.mo-inner .sb-col { padding-left: 15px; padding-right: 15px; }
	.sb-ib.mo-ib-simple-ultimate { padding-left: 0; padding-right: 15px; }
	.sb-ib.mo-ib-simple-ultimate.has-icon { padding-left: 48px; }
	.rit-header__inner { padding: 0 20px 0 0; height: 90px; }
	.rit-logo img { width: 160px; }
	.rit-burger { width: 38px; height: 38px; padding: 10px; }
	.rit-burger span { width: 18px; height: 3px; margin: 0 0 4px; background: #444; }
	.rit-toolbar-toggle svg { fill: #fff; }
	.mo-edge .sb-slides__title { font-size: 25px; line-height: 30px; margin-bottom: 20px; }
	.mo-edge .sb-slides__text { font-size: 14px; line-height: 22px; margin-bottom: 30px; }
	.mo-edge .sb-slides__inner { width: 295px; }
	.mo-edge .sb-slides__btn { padding: 12px 14px; font-size: 10px; line-height: 10px; letter-spacing: 2px; }
}

.sb-text iframe { max-width: 100%; }

/* FAQ list (Jupiter "fancy" toggles) */
.sb-acc.mo-faq { border: 1px solid #ececec; border-bottom: 0; }
.mo-faq .sb-acc__item { border-bottom: 1px solid #ececec; }
.mo-faq .sb-acc__q { justify-content: flex-start; gap: 19px; padding: 19px 18px 19.5px; font-size: 13px; font-weight: 600; line-height: 22px; color: #222; }
.mo-faq .sb-acc__q::before { content: "?"; flex: none; width: 9px; font-size: 16px; font-weight: 700; color: #ccc; text-align: center; }
.mo-faq .sb-acc__q span { flex: 1; }
.mo-faq .sb-acc__q i { width: 8px; height: 8px; border: solid #bbb; border-width: 2px 2px 0 0; transform: rotate(45deg); transition: transform .2s; }
.mo-faq .sb-acc__q i::before, .mo-faq .sb-acc__q i::after { display: none; }
.mo-faq .sb-acc__item[open] .sb-acc__q i { transform: rotate(135deg); }
.mo-faq .sb-acc__a { padding: 0 18px 18px 46px; font-size: 15px; }

/* Content defaults of the previous theme options (zero specificity, so block settings always win). */
:where(.mo-main) strong { color: #bf0a31; }
:where(.mo-main) :where(h1, h2, h3, h4, h5, h6) { color: #404040; font-weight: 600; text-transform: none; }
:where(.mo-main) :where(h1, h2) { font-size: 36px; }
:where(.mo-main) h3 { font-size: 24px; }
:where(.mo-main) h4 { font-size: 18px; }
:where(.mo-main) h5 { font-size: 20px; }
:where(.mo-main) h6 { font-size: 14px; }

/* WP FAQ list (the old FAQ plugin's look) */
.sb-acc.mo-spfaq { border: 0; }
.mo-spfaq .sb-acc__item { margin-bottom: 15px; border: 1px solid #d9d9d9; background: #f4f4f4; transition: background .5s; }
.mo-spfaq .sb-acc__item[open] { background: #fff; }
.mo-spfaq .sb-acc__q { padding: 15px 30px 15px 15px; font-size: 20px; font-weight: 600; line-height: 22px; color: #404040; }
.mo-spfaq .sb-acc__a { padding: 0 15px 15px; }

/* Fancy titles used padding for their top margin: it never collapses with the element above. */
.entry-content .sb-heading { margin-top: 0; padding-top: var(--sb-mt, 0); }
@media (max-width: 991px) { .entry-content .sb-heading { padding-top: var(--sb-mt-t, var(--sb-mt, 0)); } }
@media (max-width: 767px) { .entry-content .sb-heading { padding-top: var(--sb-mt-m, var(--sb-mt-t, var(--sb-mt, 0))); } }

/* Toggles (Jupiter "simple" style) */
.sb-acc.mo-toggle { border: 0; }
.mo-toggle .sb-acc__item { border: 0; }
.mo-toggle .sb-acc__q { justify-content: flex-start; padding: 8px 23px; font-size: 13px; font-weight: 400; line-height: 28px; color: #444; }
.mo-toggle .sb-acc__q span { flex: 1; }
.mo-toggle .sb-acc__a { padding: 20px; background: #fff; }

/* Tables (Jupiter table "style 2") */
.entry-content .wp-block-table { margin: 0 0 20px; border-bottom: 1px solid #dcdcdc; overflow-x: auto; }
.entry-content .wp-block-table table { width: 100%; border-collapse: collapse; }
.entry-content .wp-block-table th { padding: 18px 12px; background: #bf0a31; color: #fff; font-size: 14px; font-weight: 700; text-transform: uppercase; text-align: center; border: 0; }
.entry-content .wp-block-table td { padding: 12px; text-align: center; border: 0; border-bottom: 1px solid #dcdcdc; }

/* Portfolio grid with filter (Jupiter portfolio "grid", outline sort buttons) */
.mo-portfolio.sb-posts--grid .sb-filter { gap: 16px 20px; margin: 0; padding: 46px 4px 38px; }
.mo-portfolio .sb-filter button { padding: 11px 12px; border: 2px solid transparent; background: none; color: #bf0a31; font-size: 13px; font-weight: 700; letter-spacing: 1px; line-height: 13px; }
.mo-portfolio .sb-filter button.is-active { border-color: #bf0a31; background: none; color: #bf0a31; }
.mo-portfolio .sb-filter button:hover { background: none; color: #bf0a31; border-color: #bf0a31; }
.mo-portfolio.sb-posts--grid .sb-posts__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; padding: 0 2px; }
.mo-portfolio.sb-posts--grid .sb-posts__item { padding: 2px; }
.mo-portfolio.sb-posts--grid .sb-ocard__media { aspect-ratio: 351 / 292; }
.mo-portfolio.sb-posts--grid .sb-ocard__overlay { background: rgba(0, 0, 0, .6); justify-content: center; opacity: 0; }
.mo-portfolio.sb-posts--grid .sb-ocard__link:hover .sb-ocard__overlay { opacity: 1; }
.mo-portfolio.sb-posts--grid .sb-ocard__media::after { display: none; }
.mo-portfolio.sb-posts--grid .sb-ocard__title, .mo-portfolio.sb-posts--grid .sb-ocard__terms { width: auto; background: none; opacity: 1; transform: none; padding: 0 20px; }
.mo-portfolio.sb-posts--grid .sb-ocard__title { font-size: 14px; line-height: 18px; letter-spacing: 1px; text-transform: uppercase; }
.mo-portfolio.sb-posts--grid .sb-ocard__terms { font-size: 11px; line-height: 16px; color: #aaa; }
@media (max-width: 767px) { .mo-portfolio.sb-posts--grid .sb-posts__grid { grid-template-columns: 1fr; } }

/* Title bar (single items): uppercase title on white, as in Jupiter */
.mo-titlebar { padding: 40px 0 30px; background: none; }
.mo-titlebar__inner { max-width: 1140px; padding: 0 20px; }
.mo-titlebar h1 { font-size: 20px; line-height: 24px; font-weight: 400; letter-spacing: 2px; text-transform: uppercase; color: #4d4d4d; }

/* Single FAQ item */
.rit-single { max-width: 1140px; margin: 0 auto; padding: 51px 0 50px; }
.rit-single__tools { padding: 0 20px; }
.rit-single__tools { display: flex; justify-content: flex-end; height: 28px; margin-bottom: 10px; }
.rit-print svg { width: 16px; height: 16px; margin-top: 8px; fill: #898989; }
/* Jupiter single post: plain content 20 px in (15 px on phones), no column padding. */
.rit-single .entry-content > .sb-section .sb-col { padding-left: 0; padding-right: 0; }
.rit-single .rit-single__tools { align-items: flex-start; }
.rit-single .entry-content > .sb-section .sb-section__inner { padding-left: 20px; padding-right: 20px; }
.rit-single .entry-content > .sb-section .sb-row { margin-left: 0; margin-right: 0; }
@media (max-width: 767px) {
	.rit-single { padding-top: 26px; }
	.rit-single .rit-single__tools { justify-content: flex-start; margin-bottom: 30px; padding: 0 15px; }
	.rit-single .entry-content > .sb-section .sb-section__inner { padding-left: 15px; padding-right: 15px; }
}
.rit-post-nav { position: fixed; top: 50%; z-index: 100; display: flex; align-items: center; height: 130px; margin-top: -65px; overflow: hidden; color: #fff; text-decoration: none; transition: transform .3s; }
.rit-post-nav--prev { left: 0; transform: translateX(-200px); flex-direction: row-reverse; }
.rit-post-nav--next { right: 0; transform: translateX(200px); }
.rit-post-nav:hover { transform: none; }
.rit-post-nav__icon { display: flex; align-items: center; justify-content: center; width: 60px; height: 130px; background: rgba(0, 0, 0, .3); }
.rit-post-nav__icon svg { width: 22px; height: 22px; fill: #fff; }
.rit-post-nav__title { display: flex; align-items: center; width: 200px; height: 130px; padding: 0 20px; background: #fff; color: #bf0a31; font-size: 14px; text-transform: uppercase; box-shadow: 0 0 20px rgba(0, 0, 0, .1); }
@media (max-width: 767px) { .rit-post-nav { display: none; } }
@media print { .rit-header, .rit-footer, .rit-post-nav, .rit-go-top, .rit-single__tools { display: none; } }

/* Archives */
.rit-archive { max-width: 1140px; margin: 0 auto; padding: 51px 20px 50px; }

/* FAQ archive: Jupiter blog "modern" list */
.rit-blogitem { display: flex; gap: 30px; margin-bottom: 50px; }
.rit-blogitem__side { flex: 0 0 70px; display: flex; flex-direction: column; align-items: center; padding-top: 0; color: #898989; }
.rit-share summary { list-style: none; cursor: pointer; padding: 20px 0 18px; }
.rit-share summary::-webkit-details-marker { display: none; }
.rit-share svg, .rit-comments svg { width: 16px; height: 16px; fill: #898989; }
.rit-share ul { list-style: none; margin: 0 0 10px; padding: 0; font-size: 12px; }
.rit-comments { display: flex; flex-direction: column; align-items: center; gap: 2px; padding-top: 18px; border-top: 1px solid #eee; font-size: 11px; line-height: 1; }
.rit-blogitem__main { flex: 1; min-width: 0; padding: 0 20px 35px 0; }
.rit-blogitem__meta { margin-bottom: 0; padding-top: 5px; font-size: 12px; line-height: 28.22px; color: #999; font-style: italic; }
.rit-blogitem__meta a { color: #252525; }
.rit-blogitem__title { margin: 0 0 10px; font-size: 24px; font-weight: 600; line-height: 31.2px; letter-spacing: 1px; color: #404040; }
.rit-blogitem__title a { color: #bf0a31; }
.rit-blogitem__excerpt { margin-bottom: 30px; }
.rit-blogitem__excerpt p { margin: 0; }
.rit-blogitem__more { display: inline-block; padding: 14px 24px; border-radius: 3px; background: #bf0a31; color: #fff; font-size: 12px; font-weight: 700; line-height: 12px; letter-spacing: 1px; text-transform: uppercase; }
.rit-blogitem__more:hover { background: #2e2e2e; color: #fff; }

/* Project archive: cards in a masonry grid */
.rit-pgrid { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.rit-pcard { padding: 0 10px; margin-bottom: 20px; }
.rit-pcard__holder { background: #fff; border: 1px solid #efefef; }
.rit-pcard__image { display: block; }
.rit-pcard__image img { display: block; width: 100%; aspect-ratio: 344 / 400; object-fit: cover; }
.rit-pcard__meta { padding: 20px 20px 30px; }
.rit-pcard__title { margin: 0 0 8px; font-size: 14px; font-weight: 700; line-height: 20px; letter-spacing: 1px; text-transform: uppercase; }
.rit-pcard__title a { color: #bf0a31; }
.rit-pcard__terms, .rit-pcard__terms a { font-size: 11px; line-height: 16px; letter-spacing: 1px; text-transform: uppercase; color: #aaa; }
@media (max-width: 767px) {
	.rit-pgrid { grid-template-columns: 1fr; }
	/* Jupiter keeps the share/comments column on phones and centres the button */
	.rit-bloglist { padding-left: 15px; padding-right: 15px; }
	.rit-blogitem__more { display: block; width: max-content; margin: 0 auto; }
}

.mo-toggle .sb-acc__q i { width: 8px; height: 8px; margin-right: 4px; border: solid #888; border-width: 2px 2px 0 0; transform: rotate(45deg); transition: transform .2s; }
.mo-toggle .sb-acc__q i::before, .mo-toggle .sb-acc__q i::after { display: none; }
.mo-toggle .sb-acc__item[open] .sb-acc__q i { transform: rotate(135deg); }

@media (max-width: 767px) { .entry-content > .sb-section--full .sb-button { text-align: center; } }
/* Gravity Forms: 12 px between half-width fields; below 641 px everything stacks and inputs are 48 px high. */
.mo-form .sb-form__fields { margin-right: -12px; }
.mo-form .sb-field { padding-right: 12px; }
@media (min-width: 641px) {
	.mo-form .sb-field--w50 { flex-basis: 50%; }
	.mo-form .sb-field input[type=text], .mo-form .sb-field input[type=email], .mo-form .sb-field input[type=tel] { min-height: 0; }
	.mo-form .sb-field.mo-sublabel + .sb-field:not(.mo-sublabel) { margin-top: 16px; }
}
@media (max-width: 640px) {
	.mo-form .sb-field input[type=text], .mo-form .sb-field input[type=email], .mo-form .sb-field input[type=tel] { height: 48px; }
}
/* Jupiter centres every fancy title on phones. */
@media (max-width: 767px) { .entry-content .sb-heading { text-align: center; } }

/* Gallery on phones: one square photo per row, 4 px inset and 8 px apart, as Jupiter's gallery. */
@media (max-width: 767px) { .entry-content .sb-gallery--mosaic .sb-gallery__item { padding: 0 4px 8px; } }

/* Edge slider: Jupiter's striped mask over the photo and its dark "small dot stroke" pagination. */
.mo-edge .sb-slides__media::after { content: ""; position: absolute; inset: 0; background: url(slide-mask.png); }
.mo-edge .sb-slides__dots { bottom: 26px; gap: 16px; }
.mo-edge .sb-slides__dot { position: relative; width: 10px; height: 10px; border: 0; border-radius: 50%; background: rgba(0, 0, 0, .7); }
.mo-edge .sb-slides__dot.is-active { background: transparent; box-shadow: 0 0 0 2px #333; }
.mo-edge .sb-slides__dot.is-active::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: #333; transform: scale(.4); }
@media (min-width: 768px) { .mo-edge .sb-slides__buttons { padding-right: 14px; } }
/* Jupiter's header ends in a 1 px white line on small screens. */
@media (max-width: 1140px) { .rit-header { border-bottom: 1px solid #fff; } }

/* Footer menu: "+" opens a submenu and turns into "-", as Jupiter's widget menu. */
.rit-footer-menu > .menu-item-has-children { position: relative; cursor: pointer; }
.rit-footer-menu > .menu-item-has-children::before { content: "+"; position: absolute; top: 6px; right: 9px; display: block; color: rgba(128, 128, 128, .6); font-size: 20px; font-weight: bold; cursor: pointer; }
.rit-footer-menu > .menu-item-has-children.toggle-active::before { content: "-"; top: 4px; right: 12px; }
.rit-footer-menu .sub-menu > li { padding-left: 20px; }
.rit-footer .widget_nav_menu { padding: 4px; }
.rit-footer-menu > .menu-item-has-children::before { line-height: 28.22px; }
/* A text line that was a <div> on the previous site: body line height, no paragraph margin. */
.entry-content .sb-text p.mo-div { margin-bottom: 0; line-height: 28.22px; }
/* Jupiter's footer has an empty third column on phones: 1 px plus 20 px margin below the menu. */
@media (max-width: 767px) { .rit-footer__grid::after { content: ""; display: block; height: 1px; margin-bottom: 20px; } }

/* WPBakery/Jupiter details: single images sit in a text line (at least one line high), the Jupiter
   gallery starts 8 px down, and every column is at least 1 px high (empty ones count on phones). */
.entry-content .sb-image.mo-vcimg { min-height: 28.22px; }
.entry-content .sb-gallery.mo-mkgallery { margin-top: 8px; }
.entry-content .sb-col { min-height: 1px; }
/* Edge slider type below 1140 px (Jupiter: caption area 12 px, title 3.125em; description 400 20/34; phones 8 px area, 14/22). */
@media (max-width: 1140px) { .mo-edge .sb-slides__title { font-size: 37.5px; } .mo-edge .sb-slides__text { font-weight: 400; font-size: 20px; line-height: 34px; } }
@media (max-width: 767px) { .mo-edge .sb-slides__title { font-size: 25px; } .mo-edge .sb-slides__text { font-size: 14px; line-height: 22px; } }
/* Jupiter wraps iframes in text blocks in a fluid 16:9 video container. */
.entry-content .sb-text iframe { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; margin-bottom: 20px; }
.mo-form .sb-field__req { margin-left: 4px; color: #c02b0a; font-size: 13.008px; font-weight: 400; font-style: italic; }
/* Jupiter "classic" portfolio carousel: slides of at least 275 px (a quarter at full width), 15 px apart. */
.mo-portfolio.sb-posts--carousel .sb-carousel__track { grid-auto-columns: max(275px, 25%); gap: 0; }
.mo-portfolio.sb-posts--carousel .sb-ocard { padding-right: 15px; }
/* Jupiter small icon box: the text column is shifted 6 px down with position:relative (no effect on the
   box height) and takes the full width next to the icon. */
.sb-ib.mo-ib-simple-ultimate.has-icon .sb-ib__body { position: relative; top: 6px; flex: 1 1 auto; min-width: 0; }
.sb-ib.mo-ib-simple-ultimate.has-icon .sb-ib__title { padding-top: 0; }
/* Jupiter toggle: the arrow sits outside the text flow at the right, text gets the full width less 48 px. */
.mo-toggle .sb-acc__q { position: relative; padding: 8px 25px 8px 23px; line-height: 28.22px; }
.mo-toggle .sb-acc__q i { position: absolute; top: 50%; right: 6px; margin: -5px 0 0; }
/* Jupiter lists in text: no padding, 25.5 px indent, 17 px below (also as the last element of a text block). */
.entry-content .sb-text ul, .entry-content .sb-text ol, .entry-content .sb-text > ul:last-child, .entry-content .sb-text > ol:last-child { margin: 0 0 17px 25.5px; padding-left: 0; }
.entry-content .sb-text li { margin: 0 0 0 .85em; }
.entry-content .sb-text table th { line-height: 28.22px; }
@media (max-width: 767px) { .rit-archive { padding-top: 25px; padding-bottom: 25px; } }
/* Project archive as Jupiter: 20 px above the grid, 15 px sides on phones, a 70 px load-more area. */
.rit-pgrid { padding-top: 20px; }
@media (max-width: 767px) { .rit-archive { padding-left: 15px; padding-right: 15px; } }
.rit-loadmore:has(.pagination) { position: relative; height: 70px; }
.rit-loadmore .pagination { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.rit-pgrid { margin-bottom: -20px; }
@media (min-width: 768px) { .rit-archive:has(.rit-pgrid) { padding-top: 51px; padding-bottom: 50px; } }
/* WP FAQ list (contact): the arrow is a 24 px column at the right, outside the text flow. */
.mo-spfaq .sb-acc__q { position: relative; display: block; }
.mo-spfaq .sb-acc__q span { display: block; }
.mo-spfaq .sb-acc__q i { position: absolute; top: 0; right: 10px; bottom: 0; width: 24px; height: auto; margin: 0; border: 0; background: url(faq-down.png) 50% 50% / 50% no-repeat; transform: none; }
.mo-spfaq .sb-acc__q i::before, .mo-spfaq .sb-acc__q i::after { display: none; }
/* Jupiter social icons (contact): 24 px icons in 32 px cells, a 40 px row with 10 px above and below. */
.entry-content .sb-col__inner > .sb-social.mo-social { height: 40px; margin: 10px 0; align-items: flex-start; gap: 0; }
.mo-social .sb-social__link { display: block; box-sizing: border-box; width: 32px; height: 32px; padding: 4px; border-radius: 0; background: none; }
/* Google map: 5 px above and below the frame; the WP FAQ list keeps 15 px under the last question. */
.entry-content .mo-map { padding: 5px 0; }
.entry-content .sb-col__inner > .sb-acc.mo-spfaq { margin-bottom: 15px; }
.entry-content .sb-heading__title p { margin: 0; line-height: inherit; }
/* Jupiter "fancy" FAQ: question mark inline (text wraps under it), arrow absolute at the right. */
.mo-faq .sb-acc__q { display: block; position: relative; padding: 18px 28px 18px 18px; }
.mo-faq .sb-acc__q::before { display: inline-block; width: 9px; margin-right: 15px; line-height: 22px; }
.mo-faq .sb-acc__q span { display: inline; }
.mo-faq .sb-acc__q i { position: absolute; top: 27px; right: 16px; }
@media (max-width: 767px) { .mo-page[style*="--mo-pad-top"] .entry-content > .sb-section.mo-row .sb-section__inner { padding-left: 0; padding-right: 0; } }
/* Page without padding setting on phones: Jupiter uses 25 px (and a 30 px empty title bar) there. */
@media (max-width: 767px) {
	.mo-page[style*="--mo-pad-top:81px"] { --mo-pad-top: 55px !important; }
	.mo-page[style*="--mo-pad-bottom:50px"] { --mo-pad-bottom: 25px !important; }
}
.entry-content .sb-col__inner > .sb-acc.mo-faq { margin-bottom: 20px; }
.mo-faq .sb-acc__q { padding-right: 18px; padding-bottom: 19px; }
/* Single FAQ: 15 px sides on phones also for row sections; the last element keeps its own margin. */
@media (max-width: 767px) { .rit-single .entry-content > .sb-section.mo-row .sb-section__inner { padding-left: 15px; padding-right: 15px; } }
.rit-single .entry-content .sb-col__inner > .sb-text { margin-bottom: 0; }
.rit-single .entry-content .sb-text > p:last-child { margin-bottom: 20px; }
.rit-single { padding-bottom: 110px; }
@media (max-width: 767px) { .rit-single { padding-bottom: 85px; } }
/* Open top bar on phones (Jupiter): phone and tagline on their own 25 px lines, search floated right below. */
@media (max-width: 767px) {
	.rit-toolbar.is-open { padding: 10px 5px; line-height: 25px; }
	.rit-toolbar .rit-toolbar__inner { display: flow-root; padding: 0 20px; }
	.rit-toolbar__contact, .rit-toolbar__tagline { display: block; margin: 0 10px 5px; }
	.rit-toolbar__contact svg { display: inline; margin-right: 6px; vertical-align: -2px; }
	.rit-toolbar .rit-search { float: right; width: 170px; margin: 0 0 0 6px; padding-bottom: 10px; line-height: 35px; }
	.rit-toolbar .rit-search input { width: 170px; height: 23px; padding: 3px 15px 3px 30px; background: rgba(255, 255, 255, .2); }
	.rit-toolbar .rit-search button { left: 8px; right: auto; opacity: 0; }
}
