/* Realgas content blocks. 1rem ~= 1 design px at 1950px desktop / 390px mobile. */
/* Hero */
.hero {
    position: relative;
    overflow: hidden;
    min-height: 753rem;
    background-color: var(--blue-hero);
    background-image: var(--hero-bg);
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    color: #fff;
}
.hero__inner {
    width: min(calc(100% - 40rem), 1424rem);
    min-height: inherit;
    display: flex;
    align-items: flex-start;
}
.hero__content {
    width: 808rem;
    padding-top: 85.6rem;
}
.hero__title {
    margin: 0 0 56rem;
    max-width: 816rem;
    font-size: 52.48rem;
    line-height: 1.18;
    font-weight: 300;
    letter-spacing: -0.015em;
}
.hero__title strong {
    font-weight: 700;
}
.hero__title span { font-weight: 300; }
.hero__triggers {
    list-style: none;
    width: 608rem;
    margin: 0 0 28.8rem;
    padding: 0;
}
.hero__triggers li {
    position: relative;
    padding-left: 29.6rem;
    font-size: 22.72rem;
    line-height: 1.42;
    font-weight: 400;
}
.hero__triggers li + li { margin-top: 6.08rem; }
.hero__triggers li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.5em;
    width: 12.8rem;
    height: 7.04rem;
    border-left: 3.2rem solid var(--dark);
    border-bottom: 3.2rem solid var(--dark);
    transform: rotate(-45deg);
}
.hero__cta-wrap {
    position: relative;
    display: inline-block;
}
.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 4.8rem;
    cursor: pointer;
    text-align: center;
}
.button--hero {
    min-width: 438rem;
    min-height: 92rem;
    padding: 28rem 46.4rem 25.92rem;
    background: var(--dark);
    border-bottom: 5.12rem solid #1c2739;
    box-shadow: 0 7.2rem 39.2rem rgba(255,255,255,.32);
    color: #fff;
    font-size: 22.08rem;
    line-height: 1.05;
    font-weight: 700;
    transition: opacity .2s ease, transform .2s ease;
}
.button--hero:hover,
.button--hero:focus-visible {
    opacity: .9;
    transform: translateY(-1.28rem);
}
.hero__arrow {
    position: absolute;
    left: calc(100% + 28.8rem);
    top: -38.4rem;
    width: 68.8rem;
    height: auto;
}

@media (max-width: 767.84px) {
    .hero {
        min-height: 667rem;
        background-size: auto;
        background-position: -511.5rem -9.5rem;
    }
    .hero__inner { display: block; }
    .hero__content {
        width: 100%;
        padding-top: 49.6rem;
    }
    .hero__title {
        width: 100%;
        margin: 0 auto 45rem;
        text-align: center;
        font-size: 27.84rem;
        line-height: 1.22;
        letter-spacing: 0;
    }
    .hero__title strong,
    .hero__title span { display: inline; }
    .hero__triggers {
        width: 100%;
        margin-bottom: 23.2rem;
    }
    .hero__triggers li {
        padding-left: 24rem;
        font-size: 20rem;
        line-height: 1.45;
    }
    .hero__triggers li + li { margin-top: 4.16rem; }
    .hero__triggers li::before {
        top: .52em;
        width: 10.88rem;
        height: 6.08rem;
        border-left-width: 2.72rem;
        border-bottom-width: 2.72rem;
    }
    .hero__cta-wrap { display: block; }
    .button--hero {
        width: 100%;
        min-width: 0;
        min-height: 90.88rem;
        padding: 21.6rem 35.2rem;
        font-size: 17.76rem;
        line-height: 1.05;
    }
    .hero__arrow { display: none; }
}
/* Shared section heading */
.section-title {
    margin: 0;
    color: var(--text);
    font-size: 45.12rem;
    line-height: 1.2;
    font-weight: 300;
    letter-spacing: -0.01em;
}
.section-title strong { font-weight: 700; }

/* Full service complex */
.services {
    background: #fff;
    padding: 75.2rem 0 80rem;
}
.services__inner { max-width: 1360rem; }
.services__title {
    max-width: 1008rem;
    margin-inline: auto;
    margin-bottom: 72rem;
    text-align: center;
}
.services__title strong,
.services__title span { display: inline; }
.services__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 67.2rem;
}
.service-card {
    text-align: center;
    min-width: 0;
}
.service-card__icon {
    width: 108.8rem;
    height: 108.8rem;
    margin: 0 auto 21.6rem;
    display: grid;
    place-items: center;
    border: 3.52rem solid var(--blue);
    border-radius: 50%;
    color: var(--blue);
}
.service-card__icon svg {
    width: 50.4rem;
    height: 50.4rem;
    fill: currentColor;
}
.service-card__title {
    margin: 0 0 11.52rem;
    color: #286da8;
    font-size: 22.72rem;
    line-height: 1.2;
    font-weight: 600;
}
.service-card__text {
    max-width: 448rem;
    margin: 0 auto;
    font-size: 20rem;
    line-height: 1.2;
    font-weight: 400;
}

/* Portfolio */
.portfolio {
    position: relative;
    overflow: hidden;
    background-color: #f5f5f5;
    padding: 75.2rem 0 77.6rem;
}
.portfolio::before {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image: var(--portfolio-pattern);
    background-repeat: repeat;
    opacity: .6;
}
.portfolio__inner {
    position: relative;
    z-index: 1;
    max-width: 1425rem;
}
@media (min-width: 767.85px) {
    .portfolio__inner { width: min(calc(100% - 40rem), 1425rem); }
}
.portfolio__title {
    max-width: 970rem;
    margin: 0 auto 50rem;
    text-align: center;
}
.portfolio__title span,
.portfolio__title strong { display: inline; }
.portfolio__tabs {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 9.6rem 35.2rem;
    margin-bottom: 26.4rem;
}
.portfolio-tab {
    appearance: none;
    border: 0;
    border-bottom: 2.56rem solid transparent;
    padding: 11.52rem 13.6rem 9.92rem;
    background: transparent;
    color: #171717;
    font-size: 17.6rem;
    line-height: 1;
    font-weight: 600;
    cursor: pointer;
    transition: border-color .2s ease, color .2s ease;
}
.portfolio-tab:hover,
.portfolio-tab:focus-visible { color: #43a4d9; }
.portfolio-tab.is-active {
    border: 2.56rem solid var(--blue);
    color: #171717;
}
.portfolio__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12.5rem;
    transition: opacity .18s ease, transform .18s ease;
}
.portfolio__grid.is-switching {
    opacity: 0;
    transform: translateY(5.6rem);
}
.portfolio-card {
    position: relative;
    overflow: hidden;
    display: block;
    width: 100%;
    aspect-ratio: 3 / 2;
    padding: 0;
    border: 0;
    background: #ddd;
    cursor: zoom-in;
}
.portfolio-card[hidden] { display: none !important; }
.portfolio-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .8s ease;
}
.portfolio-card__overlay {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0);
    transition: background-color .8s ease;
}
.portfolio-card:hover img,
.portfolio-card:focus-visible img { transform: scale(1.055); }
.portfolio-card:hover .portfolio-card__overlay,
.portfolio-card:focus-visible .portfolio-card__overlay { background: rgba(0,0,0,.5); }
.portfolio-card:focus-visible { outline: 2.88rem solid var(--blue); outline-offset: 2.4rem; }

/* Portfolio lightbox */
body.lightbox-open { overflow: hidden; }
.lightbox[hidden] { display: none; }
.lightbox {
    position: fixed;
    z-index: 9999;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 32rem;
}
.lightbox__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.88);
}
.lightbox__dialog {
    position: relative;
    z-index: 1;
    width: min(92vw, 1312rem);
    height: min(88vh, 928rem);
    display: grid;
    grid-template-columns: 75.2rem minmax(0, 1fr) 75.2rem;
    grid-template-rows: minmax(0, 1fr) auto;
    align-items: center;
}
.lightbox__figure {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
    min-height: 0;
    margin: 0;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}
.lightbox__image {
    max-width: 100%;
    max-height: calc(88vh - 48rem);
    width: auto;
    height: auto;
    object-fit: contain;
    user-select: none;
    -webkit-user-drag: none;
}
.lightbox__caption {
    margin-top: 11.2rem;
    color: #fff;
    font-size: 16rem;
    text-align: center;
}
.lightbox__close,
.lightbox__nav {
    border: 0;
    background: transparent;
    color: #fff;
    cursor: pointer;
}
.lightbox__close {
    position: absolute;
    z-index: 2;
    top: -12rem;
    right: -3.2rem;
    width: 54.4rem;
    height: 54.4rem;
    font-size: 48rem;
    line-height: 1;
    font-weight: 300;
}
.lightbox__nav {
    width: 75.2rem;
    height: 96rem;
    font-size: 80rem;
    line-height: .7;
    opacity: .86;
    transition: opacity .2s ease;
}
.lightbox__nav:hover,
.lightbox__nav:focus-visible { opacity: 1; }
.lightbox__nav--prev { grid-column: 1; grid-row: 1; }
.lightbox__nav--next { grid-column: 3; grid-row: 1; }
.lightbox__counter {
    grid-column: 1 / -1;
    grid-row: 2;
    justify-self: center;
    color: #fff;
    font-size: 15.2rem;
    padding-top: 10.4rem;
}

.section-anchor { scroll-margin-top: 16rem; }

@media (max-width: 767.84px) {
    .section-title {
        font-size: 29.92rem;
        line-height: 1.2;
        letter-spacing: 0;
    }
    .services {
        padding: 61.6rem 0 57.6rem;
    }
    .services__title {
        max-width: 352rem;
        margin-bottom: 36rem;
    }
    .services__grid {
        display: block;
    }
    .service-card + .service-card { margin-top: 44.8rem; }
    .service-card__icon {
        width: 84.8rem;
        height: 84.8rem;
        margin-bottom: 23.2rem;
        border-width: 3.2rem;
    }
    .service-card__icon svg {
        width: 39.2rem;
        height: 39.2rem;
    }
    .service-card__title {
        margin-bottom: 9.92rem;
        font-size: 20.96rem;
    }
    .service-card__text {
        max-width: 368rem;
        font-size: 17.28rem;
        line-height: 1.18;
    }

    .portfolio {
        padding: 59.2rem 0 53.6rem;
    }
    .portfolio__inner { width: min(calc(100% - 40rem), var(--shell)); }
    .portfolio__title {
        max-width: 336rem;
        margin-bottom: 36rem;
    }
    .portfolio__title strong { display: block; }
    .portfolio__tabs {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, max-content));
        justify-content: center;
        align-items: center;
        gap: 7.2rem 24.8rem;
        margin-bottom: 27.2rem;
    }
    .portfolio-tab {
        padding: 9.28rem 11.52rem 8rem;
        font-size: 15.36rem;
        white-space: nowrap;
    }
    .portfolio__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 11.52rem;
    }
    .portfolio-card { aspect-ratio: 1.46 / 1; }

    .lightbox { padding: 16rem; }
    .lightbox__dialog {
        width: 100%;
        height: 92vh;
        display: block;
    }
    .lightbox__figure {
        height: 100%;
        padding: 54.4rem 0 48rem;
    }
    .lightbox__image { max-height: calc(92vh - 108.8rem); }
    .lightbox__close {
        top: 3.2rem;
        right: 1.6rem;
        width: 48rem;
        height: 48rem;
        font-size: 44.8rem;
    }
    .lightbox__nav {
        position: absolute;
        z-index: 2;
        top: 50%;
        width: 48rem;
        height: 80rem;
        margin-top: -40rem;
        font-size: 64rem;
    }
    .lightbox__nav--prev { left: -4.8rem; }
    .lightbox__nav--next { right: -4.8rem; }
    .lightbox__counter {
        position: absolute;
        left: 50%;
        bottom: 5.6rem;
        transform: translateX(-50%);
        padding: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .portfolio__grid,
    .portfolio-card img,
    .portfolio-card__overlay { transition: none; }
}


/* Skip off-screen paint/layout work until lower sections approach the viewport. */
@supports (content-visibility: auto) {
    .portfolio,
    .responsibility,
    .calculation,
    .faq,
    .reviews {
        content-visibility: auto;
        contain-intrinsic-size: auto 900rem;
    }
}

/* Responsibility */
.responsibility {
    position: relative;
    overflow: hidden;
    background: #fff;
    color: var(--text);
}
.responsibility::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: var(--responsibility-pattern);
    background-repeat: repeat;
    background-size: 352rem auto;
    opacity: .018;
    pointer-events: none;
}
.responsibility__inner {
    position: relative;
    z-index: 1;
    min-height: 353.6rem;
    padding-top: 91.2rem;
    padding-bottom: 88rem;
}
.responsibility__title {
    margin: 0;
    text-align: center;
    font-size: 43.52rem;
    line-height: 1.12;
    font-weight: 300;
    letter-spacing: -.012em;
}
.responsibility__content {
    display: grid;
    grid-template-columns: 1fr 1fr;
    margin-top: 66.4rem;
}
.responsibility__text {
    grid-column: 2;
    width: min(100%, 624rem);
    margin: 0 auto;
    text-align: center;
    font-size: 20.48rem;
    line-height: 1.18;
    font-weight: 700;
}

/* Calculation / Contact Form 7 */
.calculation {
    position: relative;
    overflow: hidden;
    padding: 67.2rem 0 64.8rem;
    background: var(--blue);
    color: #fff;
    scroll-margin-top: 16rem;
}
.calculation::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: var(--calculation-pattern);
    background-repeat: repeat;
    background-size: 352rem auto;
    opacity: 1;
    mix-blend-mode: normal;
    pointer-events: none;
}
.calculation__inner { position: relative; z-index: 1; }
.calculation__heading { text-align: center; }
.calculation__title {
    margin: 0;
    font-size: 43.52rem;
    line-height: 1.15;
    font-weight: 300;
    letter-spacing: -.012em;
}
.calculation__subtitle {
    margin: 16rem 0 0;
    font-size: 29.12rem;
    line-height: 1.2;
    font-weight: 300;
}
.calculation__form-shell {
    margin-top: 43.2rem;
    border-radius: 5.6rem;
    background: #fff;
    color: var(--text);
    overflow: hidden;
}
.calculation .wpcf7,
.calculation .wpcf7-form { margin: 0; }
.calculation .wpcf7-form > p { margin: 0; }
.calc-form {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(352rem, .93fr);
    gap: 0;
    padding: 45.6rem 47.2rem 45.6rem 52rem;
}
.calc-form__main {
    display: grid;
    grid-template-columns: 1fr 1.08fr;
    min-width: 0;
}
.calc-form__column {
    min-width: 0;
    padding-right: 34.4rem;
}
.calc-form__column--middle {
    padding-left: 35.2rem;
    border-left: 1rem solid #d7d7d7;
}
.calc-step + .calc-step {
    margin-top: 27.52rem;
    padding-top: 24.8rem;
    border-top: 1rem solid #dedede;
}
.calc-form__column--left .calc-step + .calc-step {
    border-top: 0;
    padding-top: 0;
    margin-top: 40.8rem;
}
.calc-step__title,
.calc-submit__title {
    margin: 0;
    font-size: 22.72rem;
    line-height: 1.08;
    font-weight: 700;
}
.calc-field {
    display: block;
    margin-top: 23.2rem;
}
.calc-field + .calc-field { margin-top: 24.8rem; }
.calc-field__label {
    display: block;
    margin: 0 0 11.52rem;
    font-size: 16.48rem;
    line-height: 1.25;
    font-style: normal;
}
.calc-field__label i {
    margin-left: 2.88rem;
    color: #f32626;
    font-style: normal;
}
.calc-field__label--question {
    max-width: 320rem;
    margin-top: 24rem;
    margin-bottom: 14.4rem;
    line-height: 1.45;
}
.calc-control,
.calculation .wpcf7 input.calc-control {
    width: 100%;
    height: 65.6rem;
    margin: 0;
    padding: 0 21.6rem;
    border: 1rem solid #7c838d;
    border-radius: 1.92rem;
    outline: 0;
    background: #fff;
    color: var(--text);
    font-size: 16rem;
    line-height: 1;
    transition: border-color .2s ease, box-shadow .2s ease;
}
.calc-control::placeholder { color: #9b9b9b; opacity: 1; }
.calc-control:focus {
    border-color: var(--blue);
    box-shadow: 0 0 0 2.4rem rgba(70,117,195,.14);
}
.calculation .wpcf7-form-control-wrap { display: block; }
.calculation .wpcf7-radio,
.calculation .wpcf7-checkbox {
    display: flex;
    flex-direction: column;
    gap: 6.72rem;
}
.calculation .wpcf7-list-item {
    display: block;
    margin: 0;
}
.calculation .wpcf7-list-item label,
.calc-privacy label {
    display: inline-flex;
    align-items: center;
    gap: 12.48rem;
    cursor: pointer;
    font-size: 16.32rem;
    line-height: 1.2;
}
.calculation input[type='radio'],
.calculation input[type='checkbox'] {
    -webkit-appearance: none;
    appearance: none;
    flex: 0 0 auto;
    width: 16.32rem;
    height: 16.32rem;
    margin: 0;
    border: 1.92rem solid #3979d6;
    background: #fff;
    cursor: pointer;
}
.calculation input[type='radio'] { border-radius: 50%; }
.calculation input[type='radio']:checked {
    background: radial-gradient(circle at center, #3979d6 0 39%, transparent 43%);
}
.calculation input[type='checkbox']:checked {
    position: relative;
    background-color: #1877f2;
    border-color: #1877f2;
}
.calculation input[type='checkbox']:checked::after {
    content: '';
    display: block;
    width: 7.68rem;
    height: 4rem;
    margin: 2.72rem 0 0 2.08rem;
    border-left: 1.76rem solid #fff;
    border-bottom: 1.76rem solid #fff;
    transform: rotate(-45deg);
}
.calc-form__submit-card {
    align-self: stretch;
    padding: 29.6rem 24.8rem 27.2rem;
    background: #f5f5f5;
    border-radius: 4.48rem;
}
.calc-submit__title {
    max-width: 288rem;
    font-size: 22.72rem;
    line-height: 1.12;
}
.calc-field--phone { margin-top: 29.12rem; }
.calc-submit,
.calculation input[type='submit'].calc-submit {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 66.4rem;
    margin-top: 20rem;
    padding: 14.4rem 16rem;
    border: 0;
    border-radius: 4.48rem;
    background: var(--dark);
    color: #fff;
    cursor: pointer;
    font-size: 16.8rem;
    line-height: 1.1;
    font-weight: 700;
    text-align: center;
    transition: transform .15s ease, background-color .15s ease;
}
.calc-submit:hover,
.calc-submit:focus-visible { background: #111f36; }
.calc-submit:active { transform: translateY(1.28rem); }
.calc-privacy { margin-top: 25.6rem; }
.calc-privacy .wpcf7-list-item { margin: 0; }
.calc-privacy label {
    align-items: flex-start;
    gap: 12rem;
    color: #555;
    font-size: 12.48rem;
    line-height: 1.35;
}
.calc-privacy input[type='checkbox'] { margin-top: .96rem; }
.calculation .wpcf7-not-valid-tip {
    margin-top: 5.6rem;
    color: #c81515;
    font-size: 12.48rem;
}
.calculation .wpcf7-response-output {
    grid-column: 1 / -1;
    margin: 16rem 52rem 32rem !important;
    padding: 12rem 16rem !important;
    border-width: 1.6rem !important;
    font-size: 14.4rem;
}
.realgas-honeypot {
    position: absolute !important;
    left: -9999px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}

@media (max-width: 1152px) {
    .calc-form { grid-template-columns: minmax(0, 1.75fr) minmax(320rem, .9fr); }
    .calc-form__column { padding-right: 24rem; }
    .calc-form__column--middle { padding-left: 24rem; }
}

@media (max-width: 767.84px) {
    .responsibility__inner {
        min-height: 0;
        padding-top: 57.6rem;
        padding-bottom: 61.6rem;
    }
    .responsibility__title {
        max-width: 336rem;
        margin-inline: auto;
        font-size: 30.4rem;
        line-height: 1.05;
    }
    .responsibility__content {
        display: block;
        margin-top: 40.8rem;
    }
    .responsibility__text {
        width: min(100%, 336rem);
        font-size: 20rem;
        line-height: 1.12;
    }

    .calculation { padding: 43.2rem 0 42.4rem; }
    .calculation__inner { width: min(calc(100% - 18.4rem), var(--shell)); }
    .calculation::before { background-size: 283.2rem auto; }
    .calculation__title {
        max-width: 352rem;
        margin-inline: auto;
        font-size: 29.12rem;
        line-height: 1.05;
    }
    .calculation__subtitle {
        max-width: 336rem;
        margin: 23.2rem auto 0;
        font-size: 22.08rem;
        line-height: 1.08;
    }
    .calculation__form-shell {
        margin-top: 39.2rem;
        border-radius: 4.16rem;
    }
    .calc-form {
        display: block;
        padding: 24.8rem 20rem 21.6rem;
    }
    .calc-form__main { display: block; }
    .calc-form__column,
    .calc-form__column--middle {
        padding: 0;
        border: 0;
    }
    .calc-form__column--middle { margin-top: 37.6rem; }
    .calc-step + .calc-step,
    .calc-form__column--left .calc-step + .calc-step {
        margin-top: 33.6rem;
        padding-top: 0;
        border: 0;
    }
    .calc-step__title,
    .calc-submit__title {
        font-size: 23.68rem;
        line-height: 1.03;
    }
    .calc-field { margin-top: 21.6rem; }
    .calc-field + .calc-field { margin-top: 24.8rem; }
    .calc-field__label {
        margin-bottom: 11.52rem;
        font-size: 16.32rem;
    }
    .calc-field__label--question {
        margin-top: 20.8rem;
        margin-bottom: 12.8rem;
        line-height: 1.45;
    }
    .calc-control,
    .calculation .wpcf7 input.calc-control {
        height: 66.4rem;
        padding-inline: 18.4rem;
        font-size: 15.2rem;
    }
    .calculation .wpcf7-radio,
    .calculation .wpcf7-checkbox { gap: 7.2rem; }
    .calculation .wpcf7-list-item label { font-size: 16rem; }
    .calc-form__submit-card {
        margin-top: 37.6rem;
        padding: 24.8rem 20rem 23.2rem;
    }
    .calc-submit__title {
        max-width: 280rem;
        line-height: 1.12;
    }
    .calc-field--phone { margin-top: 28rem; }
    .calc-submit,
    .calculation input[type='submit'].calc-submit {
        min-height: 64rem;
        margin-top: 19.2rem;
        padding-inline: 9.6rem;
        font-size: 15.2rem;
    }
    .calc-privacy { margin-top: 25.6rem; }
    .calc-privacy label { font-size: 12.16rem; line-height: 1.5; }
    .calculation .wpcf7-response-output {
        margin: 16rem 20rem 24rem !important;
    }
}

/* FAQ */
.faq {
    position: relative;
    overflow: hidden;
    background: #f7f7f7;
    padding: 76.8rem 0 85.6rem;
}
.faq::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: var(--faq-pattern);
    background-repeat: repeat;
    background-size: 352rem auto;
    opacity: .035;
    pointer-events: none;
}
.faq__inner { position: relative; z-index: 1; }
.faq__title {
    margin-bottom: 58.4rem;
    text-align: center;
    font-size: 42.4rem;
}
.faq__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 23.2rem;
    align-items: start;
}
.faq__column { min-width: 0; }
.faq-item {
    border: 1px solid #d7dce4;
    background: rgba(255,255,255,.88);
}
.faq-item + .faq-item { border-top: 0; }
.faq-item__heading { margin: 0; }
.faq-item__button {
    display: flex;
    align-items: center;
    gap: 14.72rem;
    width: 100%;
    min-height: 80.8rem;
    margin: 0;
    padding: 19.2rem 30.4rem;
    border: 0;
    background: transparent;
    color: #111820;
    cursor: pointer;
    font-size: 17.28rem;
    line-height: 1.08;
    font-weight: 700;
    text-align: left;
    transition: color .2s ease, background-color .2s ease;
}
.faq-item__button:hover,
.faq-item__button:focus-visible { color: var(--blue); }
.faq-item__icon {
    position: relative;
    flex: 0 0 auto;
    width: 16.8rem;
    height: 16.8rem;
}
.faq-item__icon::before,
.faq-item__icon::after {
    content: '';
    position: absolute;
    left: 50%;
    top: 50%;
    width: 16rem;
    height: 2.56rem;
    border-radius: 16rem;
    background: currentColor;
    transform: translate(-50%, -50%);
    transition: transform .2s ease;
}
.faq-item__icon::after { transform: translate(-50%, -50%) rotate(90deg); }
.faq-item.is-open .faq-item__button { color: var(--blue); }
.faq-item.is-open .faq-item__icon::after { transform: translate(-50%, -50%) rotate(0deg); }
.faq-item__answer { overflow: hidden; }
.faq-item__answer-inner {
    padding: 37.6rem 24.8rem 40.8rem;
    border-top: 1px solid #d7dce4;
    color: #222b37;
    font-size: 18.56rem;
    line-height: 1.45;
}
.faq-item__answer-inner p { margin: 0; }
.faq-item__answer-inner p + p { margin-top: 12.8rem; }

/* Reviews */
.reviews {
    background: #fff;
    padding: 38rem 0 195rem;
}
.reviews__title {
    margin-bottom: 60rem;
    text-align: center;
    font-size: 42.4rem;
    font-weight: 300;
}
.reviews__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: 40.8rem;
    row-gap: 50rem;
}
.review-card { min-width: 0; }
.review-card__body {
    position: relative;
    min-height: 144rem;
    padding: 22.08rem 21.6rem 19.2rem 44rem;
    border-top: 4.16rem solid #87b9e4;
    border-radius: 4.48rem;
    background: #f5f5f5;
}
.review-card__quote {
    position: absolute;
    left: 13.12rem;
    top: 21.6rem;
    width: 17.92rem;
    height: auto;
}
.review-card__text {
    font-size: 16.8rem;
    line-height: 1.18;
}
.review-card__text p { margin: 0; }
.review-card__author {
    margin: 17.6rem 0 0;
    font-size: 16.48rem;
    line-height: 1.2;
}
.review-card__author strong { font-weight: 700; }
.review-card__author span { font-weight: 400; }
.reviews__action {
    display: flex;
    justify-content: center;
    margin-top: 23.2rem;
}
.reviews__button {
    min-width: 282.4rem;
    min-height: 68rem;
    padding: 16rem 28rem;
    border: 0;
    border-radius: 4.48rem;
    background: var(--dark);
    color: #fff;
    font-size: 16.8rem;
    font-weight: 700;
    transition: background-color .18s ease, transform .18s ease;
}
.reviews__button:hover,
.reviews__button:focus-visible { background: #111f36; }
.reviews__button:active { transform: translateY(1.28rem); }

/* CF7's core stylesheet is intentionally not loaded on Realgas pages.
   Keep its required structural rules: without this, the hidden-fields
   fieldset becomes a visible grey bordered line above the form. */
.realgas-site .wpcf7 .hidden-fields-container { display: none !important; }
.realgas-site .wpcf7 form .wpcf7-response-output { display: none !important; }
.realgas-site .wpcf7 form.realgas-attempted.invalid .wpcf7-response-output,
.realgas-site .wpcf7 form.realgas-attempted.spam .wpcf7-response-output,
.realgas-site .wpcf7 form.realgas-attempted.failed .wpcf7-response-output,
.realgas-site .wpcf7 form.realgas-attempted.aborted .wpcf7-response-output {
    display: block !important;
    border: 1px solid #c81515;
    color: #a31313;
}
/* Fallback if mail was sent without the expected AJAX DOM event (for example,
   after a server-side form reload): do not suppress its only success feedback. */
.realgas-site .wpcf7 form.sent:not(.realgas-toast-displayed) .wpcf7-response-output {
    display: block !important;
    border: 1px solid #228f57;
    color: #1f6845;
}
/* CF7 may eagerly validate fields on blur/change. Do not alarm the visitor
   until they have explicitly tried to send the form. */
.realgas-site .wpcf7 form:not(.realgas-attempted) .wpcf7-not-valid-tip {
    display: none !important;
}
.realgas-site .wpcf7 form:not(.realgas-attempted) .wpcf7-not-valid {
    box-shadow: none;
}

/* Minimal CF7 structural styles after removing its generic frontend stylesheet. */
.wpcf7 .screen-reader-response {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
.wpcf7-spinner { display: none !important; }

/* Review modal / CF7 */
body.review-modal-open { overflow: hidden; }
.review-modal[hidden] { display: none !important; }
.review-modal {
    position: fixed;
    z-index: 1000;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 20rem;
}
.review-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(9, 17, 29, .68);
    backdrop-filter: blur(2.88rem);
}
.review-modal__dialog {
    position: relative;
    z-index: 1;
    width: min(100%, 544rem);
    max-height: calc(100vh - 40rem);
    overflow: auto;
    padding: 41.6rem 41.6rem 38.4rem;
    border-radius: 5.12rem;
    background: #fff;
    box-shadow: 0 22.4rem 64rem rgba(0,0,0,.24);
}
.review-modal__close {
    position: absolute;
    right: 11.52rem;
    top: 8.8rem;
    display: grid;
    place-items: center;
    width: 37.6rem;
    height: 37.6rem;
    border: 0;
    background: transparent;
    color: #182842;
    cursor: pointer;
    font-size: 32rem;
    line-height: 1;
}
.review-modal__title {
    margin: 0;
    font-size: 32rem;
    line-height: 1.05;
    font-weight: 700;
}
.review-modal__subtitle {
    margin: 10.4rem 0 27.2rem;
    color: #5d6571;
    font-size: 16rem;
}
.review-form__field {
    display: block;
    margin: 0;
}
.review-form__field + .review-form__field { margin-top: 17.6rem; }
.review-form__field > span:first-child {
    display: block;
    margin-bottom: 8rem;
    font-size: 15.2rem;
    font-weight: 700;
}
.review-form__field i { color: #d00; font-style: normal; }
.review-form .wpcf7-form-control-wrap { display: block; }
.review-form__control,
.review-form .wpcf7 input.review-form__control,
.review-form .wpcf7 textarea.review-form__control {
    display: block;
    width: 100%;
    min-width: 0;
    height: 56.8rem;
    padding: 12rem 16rem;
    border: 1px solid #d1d7df;
    border-radius: 4rem;
    outline: 0;
    background: #fff;
    color: var(--text);
    font-size: 16rem;
    transition: border-color .18s ease, box-shadow .18s ease;
}
.review-form__textarea,
.review-form .wpcf7 textarea.review-form__textarea {
    min-height: 136rem;
    height: 136rem;
    resize: vertical;
}
.review-form__control:focus,
.review-form .wpcf7 input.review-form__control:focus,
.review-form .wpcf7 textarea.review-form__control:focus {
    border-color: var(--blue);
    box-shadow: 0 0 0 2.88rem rgba(70,117,195,.12);
}
.review-form__submit,
.review-form .wpcf7 input.review-form__submit {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 61.6rem;
    margin-top: 20rem;
    padding: 12.8rem 19.2rem;
    border: 0;
    border-radius: 4rem;
    background: var(--dark);
    color: #fff;
    cursor: pointer;
    font-size: 16rem;
    font-weight: 700;
}
.review-form .wpcf7-not-valid-tip {
    margin-top: 4.8rem;
    color: #c81515;
    font-size: 12.48rem;
}
.review-modal .wpcf7-response-output {
    margin: 16rem 0 0 !important;
    padding: 10.4rem 12.8rem !important;
    font-size: 13.12rem;
}

@media (max-width: 767.84px) {
    .faq {
        padding: 43.2rem 0 50.4rem;
    }
    .faq::before { background-size: 283.2rem auto; opacity: .035; }
    .faq__inner { width: min(calc(100% - 40rem), var(--shell)); }
    .faq__title {
        margin-bottom: 16.8rem;
        font-size: 25.92rem;
        line-height: 1.08;
    }
    .faq__grid {
        display: block;
    }
    .faq__column + .faq__column .faq-item:first-child { border-top: 0; }
    .faq-item__button {
        min-height: 80.8rem;
        gap: 10.4rem;
        padding: 16rem 23.2rem;
        font-size: 16rem;
        line-height: 1.02;
    }
    .faq-item__icon {
        width: 14.4rem;
        height: 14.4rem;
    }
    .faq-item__icon::before,
    .faq-item__icon::after { width: 14.08rem; height: 2.24rem; }
    .faq-item__answer-inner {
        padding: 26.4rem 16rem 28.8rem;
        font-size: 16.32rem;
        line-height: 1.48;
    }

    .reviews {
        padding: 42.4rem 0 45.6rem;
    }
    .reviews__inner { width: min(calc(100% - 18.4rem), var(--shell)); }
    .reviews__title {
        margin-bottom: 23.2rem;
        font-size: 25.92rem;
        line-height: 1.08;
    }
    .reviews__grid {
        display: block;
    }
    .review-card + .review-card { margin-top: 23.2rem; }
    .review-card__body {
        min-height: 119.2rem;
        padding: 20rem 16rem 17.6rem 40.8rem;
        border-top-width: 3.68rem;
    }
    .review-card__quote {
        left: 7.2rem;
        top: 8.8rem;
        width: 17.28rem;
    }
    .review-card__text {
        font-size: 16rem;
        line-height: 1.18;
    }
    .review-card__author {
        margin-top: 16.8rem;
        font-size: 15.36rem;
    }
    .reviews__action { margin-top: 25.6rem; }
    .reviews__button {
        width: min(100%, 256rem);
        min-width: 0;
        min-height: 64rem;
        font-size: 15.36rem;
    }

    .review-modal { padding: 10.4rem; }
    .review-modal__dialog {
        width: 100%;
        max-height: calc(100vh - 20.8rem);
        padding: 35.2rem 20rem 21.6rem;
    }
    .review-modal__title { font-size: 26.4rem; }
    .review-modal__subtitle { font-size: 14.72rem; }
    .review-form__textarea,
    .review-form .wpcf7 textarea.review-form__textarea { min-height: 128rem; height: 128rem; }
}

.faq-item__answer {
    transition: height .28s ease, opacity .2s ease;
    will-change: height, opacity;
}

/* Stage 6: rendering/performance safeguards */
.portfolio-card { aspect-ratio: 3 / 2; }
.portfolio-card > img { width: 100%; height: 100%; object-fit: cover; }


/* Confirmed CF7 success toast, created once by blocks.js. */
.realgas-toast[hidden] { display: none !important; }
.realgas-toast {
    position: fixed;
    z-index: 2200;
    left: 50%;
    bottom: 32rem;
    width: min(440rem, calc(100% - 32rem));
    padding: 22rem 38rem 22rem 21rem;
    display: flex;
    align-items: center;
    gap: 17rem;
    border-radius: 10rem;
    background: #fff;
    color: #182842;
    box-shadow: 0 14rem 48rem rgba(11, 26, 49, .19);
    transform: translate(-50%, 20rem);
    opacity: 0;
    pointer-events: none;
    transition: opacity .22s ease, transform .22s ease;
}
.realgas-toast.is-visible {
    opacity: 1;
    transform: translate(-50%, 0);
    pointer-events: auto;
}
.realgas-toast__icon {
    flex: 0 0 49rem;
    width: 49rem;
    height: 49rem;
    color: #228f57;
}
.realgas-toast__circle,
.realgas-toast__tick { fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; }
.realgas-toast__circle { stroke-width: 2.2; stroke-dasharray: 103; stroke-dashoffset: 103; }
.realgas-toast__tick { stroke-width: 2.9; stroke-dasharray: 30; stroke-dashoffset: 30; }
.realgas-toast.is-visible .realgas-toast__circle {
    animation: realgas-toast-circle .48s ease .03s forwards;
}
.realgas-toast.is-visible .realgas-toast__tick {
    animation: realgas-toast-check .34s ease .40s forwards;
}
@keyframes realgas-toast-circle { to { stroke-dashoffset: 0; } }
@keyframes realgas-toast-check { to { stroke-dashoffset: 0; } }
.realgas-toast__copy { min-width: 0; line-height: 1.3; }
.realgas-toast__title { display: block; font-size: 18rem; font-weight: 700; }
.realgas-toast__description { display: block; margin-top: 3rem; font-size: 14rem; color: #49556a; }
.realgas-toast__close {
    position: absolute;
    right: 9rem;
    top: 8rem;
    display: grid;
    place-items: center;
    width: 29rem;
    height: 29rem;
    border: 0;
    border-radius: 5rem;
    padding: 0;
    background: transparent;
    color: #657185;
    font: 21rem/1 Arial, sans-serif;
    cursor: pointer;
}
.realgas-toast__close:hover, .realgas-toast__close:focus-visible { background: #eef3f8; }
@media (max-width: 767.84rem) {
    .realgas-toast { bottom: 18rem; padding: 18rem 36rem 18rem 18rem; gap: 12rem; }
    .realgas-toast__icon { flex-basis: 43rem; width: 43rem; height: 43rem; }
    .realgas-toast__title { font-size: 16rem; }
    .realgas-toast__description { font-size: 13rem; }
}
@media (prefers-reduced-motion: reduce) {
    .realgas-toast { transition: none; }
    .realgas-toast.is-visible .realgas-toast__circle,
    .realgas-toast.is-visible .realgas-toast__tick { animation: none; stroke-dashoffset: 0; }
}
