/* Built: 2026-04-15 22:41:11 UTC - fonts + general + components */

@font-face {
    font-family: 'Montserrat';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url('../fonts/montserrat-normal-latin-ext.woff2') format('woff2');
    unicode-range:
        U+0100-024F,
        U+0259,
        U+1E00-1EFF,
        U+2020,
        U+20A0-20AB,
        U+20AD-20CF,
        U+2113,
        U+2C60-2C7F,
        U+A720-A7FF;
}

@font-face {
    font-family: 'Montserrat';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url('../fonts/montserrat-normal-latin.woff2') format('woff2');
    unicode-range:
        U+0000-00FF,
        U+0131,
        U+0152-0153,
        U+02BB-02BC,
        U+02C6,
        U+02DA,
        U+02DC,
        U+0304,
        U+0308,
        U+0329,
        U+2000-206F,
        U+2074,
        U+20AC,
        U+2122,
        U+2191,
        U+2193,
        U+2212,
        U+2215,
        U+FEFF,
        U+FFFD;
}

@font-face {
    font-family: 'Montserrat';
    font-style: italic;
    font-weight: 100 900;
    font-display: swap;
    src: url('../fonts/montserrat-italic-latin-ext.woff2') format('woff2');
    unicode-range:
        U+0100-024F,
        U+0259,
        U+1E00-1EFF,
        U+2020,
        U+20A0-20AB,
        U+20AD-20CF,
        U+2113,
        U+2C60-2C7F,
        U+A720-A7FF;
}

@font-face {
    font-family: 'Montserrat';
    font-style: italic;
    font-weight: 100 900;
    font-display: swap;
    src: url('../fonts/montserrat-italic-latin.woff2') format('woff2');
    unicode-range:
        U+0000-00FF,
        U+0131,
        U+0152-0153,
        U+02BB-02BC,
        U+02C6,
        U+02DA,
        U+02DC,
        U+0304,
        U+0308,
        U+0329,
        U+2000-206F,
        U+2074,
        U+20AC,
        U+2122,
        U+2191,
        U+2193,
        U+2212,
        U+2215,
        U+FEFF,
        U+FFFD;
}


/* Variables */
:root {
    font-size: 10px;
    --app-height: 100%;
    --container: 1650px;
    --container-padding: 20px;
    --spacing-default: clamp(6rem, 8vw, 10rem);
    --spacing-small: clamp(3rem, 4vw, 5rem);
    --spacing-medium: clamp(5rem, 6vw, 8rem);
    --spacing-large: clamp(8rem, 10vw, 12rem);
    --color-blue: #243141;
    --color-blue-soft: #273347;
    --color-blue-light: #4FB9FB;
    --color-blue-dark: #10151E;
    --color-blue-footer: #2A333E;
    --color-white: #FFFFFF;
    --color-gold: #BF901E;
    --color-green: #177D7B;
    --color-green-alpha: #177D7B1A;
    --color-beige: #F5F5F0;
    --color-white-frost: #FAFAFA;
    --transition: .4s;
    --primary-font: 'Montserrat', sans-serif;
    --box-image-max-height: 640px;

    --hero-font-weight: 300;
    --hero-font-size: 8rem;
    --hero-line-height: 8.6rem;
    --hero-letter-spacing: -0.2rem;
    --hero-text-transform: uppercase;

    --heading-font-weight: 300;
    --heading-font-size: clamp(38px, 5vw, 80px);
    --heading-line-height: clamp(48px, 5vw, 120px);
    --heading-letter-spacing: -5%;
    --heading-text-transform: uppercase;

    --subheading-font-weight: 400;
    --subheading-font-size: clamp(20px, 3vw, 28px);
    --subheading-line-height: clamp(28px, 5vw, 60px);
    --subheading-letter-spacing: 0px;
    --subheading-text-transform: uppercase;

    --text-font-weight: 400;
    --text-font-size: 3.4rem;
    --text-line-height: 48px;
    --text-letter-spacing: -1px;

    --btn-bg: var(--color-gold);
    --btn-color: var(--color-white);
    --btn-border: 2px solid var(--color-gold);
    --btn-border-radius: 4px;
    --btn-opacity-hover: 0.8;

    --btn-primary-bg: var(--color-gold);
    --btn-primary-color: var(--color-white);
    --btn-primary-border: none;
    --btn-primary-opacity-hover: 0.8;

    --btn-secondary-bg: transparent;
    --btn-secondary-color: var(--color-gold);
    --btn-secondary-border: 2px solid var(--color-gold);
    --btn-secondary-opacity-hover: 0.8;

    --btn-tertiary-bg: transparent;
    --btn-tertiary-color: var(--color-white);
    --btn-tertiary-border: 2px solid var(--color-white);
    --btn-tertiary-opacity-hover: 0.8;
}


*,
*::before,
*::after {
    box-sizing: border-box;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body {
    line-height: 1;
    margin: 0;
    overflow-x: hidden;
    position: relative;
    font-family: var(--primary-font);
}

a {
    text-decoration: none;
}

p,
h1, h2, h3, h4, h5, h6 {
    margin: 0;
}

ul {
    margin: 0;
    padding-left: 0;
}

input,
textarea,
select, 
ul,
li, 
button{
    font-family: var(--primary-font);
}

/* Layout */
html.stop-scroll {
    overflow: hidden;
    height: calc(var(--app-height) - 1px);
}

.main {
    overflow: hidden;
    position: relative;
}

.container {
    position: relative;
    max-width: calc(var(--container) + 2 * var(--container-padding));
    margin: 0 auto;
    padding-inline: var(--container-padding);
    width: 100%;
}

/* Shared spacing utilities for SGF block wrappers */
.sgf-space-mt-none {
    margin-top: 0 !important;
}

.sgf-space-pt-none {
    padding-top: 0 !important;
}

.sgf-space-pb-none {
    padding-bottom: 0 !important;
}

.sgf-space-mb-none {
    margin-bottom: 0 !important;
}

.sgf-space-mt-small {
    margin-top: var(--spacing-small) !important;
}

.sgf-space-mt-medium {
    margin-top: var(--spacing-medium) !important;
}

.sgf-space-mt-large {
    margin-top: var(--spacing-large) !important;
}

.sgf-space-pt-small {
    padding-top: var(--spacing-small) !important;
}

.sgf-space-pt-medium {
    padding-top: var(--spacing-medium) !important;
}

.sgf-space-pt-large {
    padding-top: var(--spacing-large) !important;
}

.sgf-space-pb-small {
    padding-bottom: var(--spacing-small) !important;
}

.sgf-space-pb-medium {
    padding-bottom: var(--spacing-medium) !important;
}

.sgf-space-pb-large {
    padding-bottom: var(--spacing-large) !important;
}

.sgf-space-mb-small {
    margin-bottom: var(--spacing-small) !important;
}

.sgf-space-mb-medium {
    margin-bottom: var(--spacing-medium) !important;
}

.sgf-space-mb-large {
    margin-bottom: var(--spacing-large) !important;
}

/* Buttons */
.button {
    display: inline-block;
    padding: 2rem 3rem;
    font-family: var(--primary-font);
    font-size: 1.4rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.1rem;
    text-transform: uppercase;
    text-align: center;
    color: var(--btn-color);
    background-color: var(--btn-bg);
    border: var(--btn-border);
    border-radius: var(--btn-border-radius);
    cursor: pointer;
    transition: 0.3s;
}

.button:hover {
    opacity: var(--btn-opacity-hover);
}

.button--primary {
    background-color: var(--btn-primary-bg);
    color: var(--btn-primary-color);
    border: var(--btn-primary-border);
}

.button--primary:hover {
    opacity: var(--btn-primary-opacity-hover);
}

.button--secondary {
    background-color: var(--btn-secondary-bg);
    color: var(--btn-secondary-color);
    border: var(--btn-secondary-border);
}

.button--secondary:hover {
    opacity: var(--btn-secondary-opacity-hover);
}

.button--tertiary {
    background-color: var(--btn-tertiary-bg);
    color: var(--btn-tertiary-color);
    border: var(--btn-tertiary-border);
}

.button--tertiary:hover {
    background-color: var(--btn-tertiary-color);
    color: var(--color-blue-dark);
}

.wpcf7-form.submitting {
    opacity: 0.5;
    pointer-events: none;
}

.wpcf7-form .wpcf7-spinner {
    position: absolute;
    top: 50%;
    left: 50%;
    margin: -12px 0 0 -12px;
 }

 .wpcf7 form .wpcf7-response-output  {
    border: none !important;
    color: #00a0d2;
    font-size: 1.2rem;
 }

 .wpcf7 form.invalid .wpcf7-response-output {
   color: #ffb900;
 }

 .wpcf7 form.sent .wpcf7-response-output {
    color: #46b450;
 }

/* Media Queries */
@media (max-width: 1024px) {
    .button {
        padding: 1.4rem 3rem;
    }
}

@media (min-width: 768px) {
    :root {
        --container-padding: 40px;
    }
}

@media (min-width: 1024px) {
    :root {
        --container-padding: 60px;
    }
}

@media (min-width: 1441px) {
    :root {
        --container-padding: 120px;
    }
}

/* --- components/about-us/about-us.css --- */
.quem-somos {
    background: linear-gradient(150deg, #0F5251 0%, var(--color-green) 80%, #23B8B5 100%);
    padding-block: 6rem 8rem;
    padding-bottom: 27rem;
}

.quem-somos__inner {
    margin-inline: auto;
    margin-top: calc(var(--box-image-max-height) / 2);
}

.quem-somos__grid {
    display: grid;
    grid-template-columns: 2fr 1fr;
    grid-template-rows: auto auto;
    align-items: start;
    gap: 0 4rem;
    padding-top: 10rem;
}

.quem-somos__content {
    grid-column: 1;
    grid-row: 1;
}

.quem-somos__stats {
    grid-column: 2;
    grid-row: 1 / -1;
}

.quem-somos__awards-block {
    grid-column: 1;
    grid-row: 2;
    min-width: 0;
}

.quem-somos__title {
    font-family: var(--primary-font);
    font-size: clamp(40px, 4vw, 80px);
    line-height: clamp(46px, 4vw, 70px);
    font-weight: 300;
    color: #fff;
    text-transform: uppercase;
    letter-spacing: -5%;
    margin-bottom: 3rem;
}

.quem-somos__text {
    font-size: clamp(20px, 4vw, 34px);
    font-weight: 400;
    line-height: clamp(34px, 4vw, 50px);
    color: #FFFFFF;
    letter-spacing: 0px;
    margin-bottom: 4rem;
    max-width: 88%;
}

.quem-somos__text strong {
    font-weight: 700;
    color: #fff;
}

.quem-somos__awards-head {
    font-size: 34px;
    font-weight: 400;
    line-height: 48px;
    color: rgba(255, 255, 255, 0.9);
    text-transform: uppercase;
    letter-spacing: -1px;
    margin-top: 8rem;
    margin-bottom: 3rem;
}

.quem-somos__awards {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
    max-width: 100%;
}

.quem-somos__award-img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: contain;
    max-width: 320px;
}

.quem-somos__awards-slider {
    display: none;
    width: 100%;
    max-width: 100%;
    overflow: hidden;
    min-width: 0;
}

.quem-somos__awards-slider .swiper-wrapper {
    min-width: 0;
}

.quem-somos__awards-slider .swiper-slide {
    min-width: 0;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2rem;
}

.quem-somos__slide .quem-somos__award-img {
    width: 100%;
    max-width: 320px;
    height: auto;
    object-fit: contain;
}

.quem-somos__slider-controls {
    display: flex;
    align-items: center;
    gap: 2.4rem;
    margin-top: 4rem;
}

.quem-somos__awards-slider .swiper-scrollbar {
    flex: 1;
    max-width: 80rem;
    position: relative;
    height: 2px;
    background-color: rgba(255, 255, 255, 0.3);
    border-radius: 2px;
}

.quem-somos__awards-slider .swiper-scrollbar-drag {
    height: 100%;
    background-color: #fff;
    border-radius: 2px;
    cursor: grab;
}

.quem-somos__awards-slider .swiper-scrollbar-drag:active {
    cursor: grabbing;
}

.quem-somos__awards-slider .swiper-button-prev,
.quem-somos__awards-slider .swiper-button-next {
    width: 3.6rem;
    height: 3.6rem;
    margin-top: 0;
    position: relative;
    left: 0;
    right: 0;
    top: 0;
    border-radius: 999px;
    border: 1px solid rgba(0, 0, 0, 0.16);
    background-color: var(--color-white);
    color: #1a1c1b;
    transition: border-color 0.2s;
}

.quem-somos__awards-slider .swiper-button-prev:hover,
.quem-somos__awards-slider .swiper-button-next:hover {
    border-color: rgba(0, 0, 0, 0.4);
}

.quem-somos__awards-slider .swiper-button-prev::after,
.quem-somos__awards-slider .swiper-button-next::after {
    content: '';
    display: block;
    width: 23px;
    height: 15px;
    background-image: url("../../assets/images/icons/Arrow3.svg");
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
}

.quem-somos__awards-slider .swiper-button-next::after {
    transform: scaleX(-1);
}

.quem-somos__stats {
    display: flex;
    flex-direction: column;
    gap: 6rem;
    margin-top: 0;
    align-self: start;
}

.quem-somos__stat {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 2.5rem;
    padding-left: 4.5rem;
    padding-block: 0.5rem;
    border-left: 1px solid var(--color-white);
}

.quem-somos__stat-value {
    font-size: clamp(40px, 4vw, 60px);
    font-weight: 500;
    color: #FFFFFF;
    line-height: clamp(46px, 4vw, 60px);
}

.quem-somos__stat-desc {
    font-size: clamp(24px, 4vw, 26px);
    font-weight: 400;
    color: #FFFFFF;
    line-height: clamp(34px, 4vw, 36px);
}

@media (max-width: 1024px) {
    .quem-somos {
        padding-bottom: 14rem;
    }

    .quem-somos__grid {
        grid-template-columns: 1fr;
        grid-template-rows: unset;
        gap: 4rem;
        padding-top: 0;
    }

    .quem-somos__content {
        order: 1;
    }

    .quem-somos__stats {
        grid-column: unset;
        grid-row: unset;
        order: 2;
        flex-direction: row;
        flex-wrap: wrap;
        gap: 4rem;
        max-width: 90%;
    }

    .quem-somos__awards-block {
        grid-column: unset;
        grid-row: unset;
        order: 3;
    }

    .quem-somos__title {
        margin-bottom: 4rem;
    }

    .quem-somos__awards-head {
        margin-top: 3.5rem;
        margin-bottom: 1rem;
    }

    .quem-somos__awards {
        display: none;
    }

    .quem-somos__awards-slider {
        display: block;
    }

    .quem-somos__slider-controls {
        display: grid;
        grid-template-columns: 1fr 1fr;
        justify-items: center;
        align-items: center;
    }

    .quem-somos__awards-slider .swiper-scrollbar {
        max-width: 100%;
        grid-column: span 2;
    }

    .quem-somos__awards-slider .swiper-button-next {
        margin-right: auto;
    }

    .quem-somos__awards-slider .swiper-button-prev {
        margin-left: auto;
    }

    .quem-somos__awards-slider .swiper-button-prev,
    .quem-somos__awards-slider .swiper-button-next {
        width: 42px;
        height: 42px;
        border: 1px solid #FFFFFF33;
        background-color: transparent;
    }

    .quem-somos__awards-slider .swiper-button-prev:hover,
    .quem-somos__awards-slider .swiper-button-next:hover {
        border-color: #FFFFFF33;
    }

    .quem-somos__awards-slider .swiper-button-prev::after,
    .quem-somos__awards-slider .swiper-button-next::after {
        filter: brightness(0) invert(1);
    }

    .quem-somos__stat-value {
        margin-bottom: 0;
    }

    .quem-somos__stat {
        flex: 1 1 200px;
        border-left: 1px solid white;
        padding: 0.5rem 3rem;
    }

    .quem-somos__text {
        max-width: 100%;
    }
}

@media (max-width: 767px) {
    .quem-somos {
        padding-bottom: 6rem;
    }

    .quem-somos__stat {
        gap: 1rem;
    }
}

/* --- components/accordion/accordion.css --- */
.accordion {
    padding-block: 8rem;
}

.accordion__wrapper {
    display: flex;
    flex-direction: column;
}

.accordion__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

/* ── Item ──────────────────────────────────────────────── */

.accordion__item {
    background-color: #2431410D;
    border-radius: 8px;
}

/* ── Trigger ───────────────────────────────────────────── */

.accordion__trigger {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    padding: 2.2rem 3.5rem;
    padding-right: 10rem;
    background: none;
    border: none;
    cursor: pointer;
    text-align: left;
    color: var(--color-blue);
    transition: color 0.25s ease;
    position: relative;
}

.accordion__trigger::after {
    content: "";
    position: absolute;
    right: 1.2rem;
    top: 50%;
    transform: translateY(-50%);
    width: 5.4rem;
    height: 5.4rem;
    background-color: rgba(255, 255, 255, 0.6);
    border-radius: 50%;
    background-image: url("../../assets/images/icons/arrow-down-blue.svg");
    background-repeat: no-repeat;
    background-position: center;
    transition: transform 0.35s ease;
}

.accordion__trigger:hover {
    opacity: 0.85;
}

.accordion__trigger-text {
    font-size: clamp(16px, 2vw, 20px);
    font-weight: 400;
    line-height: 24px;
    letter-spacing: 0px;
    color: inherit;
    transition: color 0.25s ease, font-weight 0.1s ease;
}

.accordion__item.active .accordion__trigger {
    color: #BF901E;
}

.accordion__item.active .accordion__trigger-text {
    font-weight: 700;
}

/* ── Chevron icon (using ::after like FAQs) ─────────────── */

.accordion__icon {
    width: 0;
    height: 0;
}

.accordion__item.active .accordion__trigger::after {
    transform: translateY(-50%) rotate(180deg);
    background-image: url("../../assets/images/icons/arrow-gold.svg");
}

/* ── Expand/collapse ───────────────────────────────────── */

.accordion__content {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.45s cubic-bezier(0.4, 0, 0.2, 1);
    overflow: hidden;
}

.accordion__item.active .accordion__content {
    grid-template-rows: 1fr;
}

.accordion__content-inner {
    overflow: hidden;
    min-height: 0;
    opacity: 0;
    padding: 0 1.6rem;
    padding-right: 8rem;
    transition:
        padding 0.35s ease,
        opacity 0.25s ease 0s;
}

.accordion__item.active .accordion__content-inner {
    padding: 3.5rem;
    padding-right: 8rem;
    opacity: 1;
    transition:
        padding 0.35s ease,
        opacity 0.3s ease 0.12s;
}

.accordion__content-inner>*:first-child {
    margin-top: 0;
}

.accordion__content-inner>*:last-child {
    margin-bottom: 0;
}

/* ── File list ─────────────────────────────────────────── */

.accordion__files {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
}

.accordion__file {
    display: flex;
    align-items: center;
    gap: 1.2rem;
    padding: 1.2rem 0;
    border-bottom: 1px dashed rgba(36, 49, 65, 0.2);
}

.accordion__file:first-child {
    border-top: 1px dashed rgba(36, 49, 65, 0.2);
}

.accordion__file-link {
    display: flex;
    align-items: center;
    gap: 1.2rem;
    flex: 1;
    min-width: 0;
    margin: -1.2rem 0;
    padding: 1.2rem 0;
    text-decoration: none;
    color: inherit;
    cursor: pointer;
}

.accordion__file-link:hover {
    text-decoration: underline;
}

.accordion__file-link:hover .accordion__file-download {
    opacity: 1;
    background-color: rgba(36, 49, 65, 0.06);
}

.accordion__file-icon {
    flex-shrink: 0;
    width: 2.5rem;
    height: 2.5rem;
    background-image: url("../../assets/images/icons/PDF.svg");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

.accordion__file-name {
    flex: 1;
    font-size: clamp(14px, 1.5vw, 18px);
    font-weight: 400;
    color: var(--color-blue);
    line-height: 22px;
}

.accordion__file-download {
    flex-shrink: 0;
    width: 3rem;
    height: 3rem;  
    display: flex;
    align-items: center;
    justify-content: center;
    background-image: url("../../assets/images/icons/download.svg");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 60%;  
    border-radius: 4px;
    transition: opacity 0.2s ease, background-color 0.2s ease;
    text-decoration: none;
}

.accordion__file-download:hover {
    opacity: 1;
    background-color: rgba(36, 49, 65, 0.06);
}

@media (max-width: 1024px) {
    .accordion {
        padding-block: 4rem;
    }

    .accordion__wrapper {
        padding-inline: 1.6rem;
    }

    .accordion__trigger {
        padding: 1.4rem 1.6rem;
        padding-right: 7rem;
    }

    .accordion__trigger::after {
        width: 4rem;
        height: 4rem;
    }

    .accordion__item.active .accordion__content-inner {
        padding: 1.6rem;
    }
}

/* --- components/blog-highlight/blog-highlight.css --- */
/* Highlight panel: prose rhythm + green panel (replaces legacy plain-text highlight box) */

.blog-highlight {
    margin-bottom: 2.4rem;
    padding: 4rem 5rem;
    border-radius: 16px;
    background: rgba(191, 144, 30, .2);
    color: var(--color-blue-soft);
    font-size: 24px;
    line-height: 1.65;
}

.blog-highlight:last-child {
    margin-bottom: 0;
}

.blog-highlight p,
.blog-highlight ul,
.blog-highlight ol {
    margin-bottom: 3rem;
    font-weight: 600;
}

.blog-highlight p:last-child,
.blog-highlight ul:last-child,
.blog-highlight ol:last-child {
    margin-bottom: 0;
}

.blog-highlight a {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

.blog-highlight p:first-child strong {
    color: var(--color-gold);
}

.blog-highlight a:hover {
    opacity: 0.9;
}

@media (max-width: 1024px) {
    .blog-highlight {
        padding: 2rem 3rem;
    }
}

@media (max-width: 767px) {
    .blog-highlight {
        font-size: 20px;
    }
}

/* -------------------------------------------------------------------------
   Demo page — components/blog-highlight/index.html (standalone, full-width)
   ------------------------------------------------------------------------- */
body[data-template="blog-highlight"] {
    margin: 0;
}

.blog-highlight-demo {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: clamp(3rem, 6vw, 8rem) clamp(1.6rem, 4vw, 4rem);
    box-sizing: border-box;
}

.blog-highlight-demo__title {
    font-family: var(--primary-font);
    color: var(--color-blue-soft);
    font-size: clamp(28px, 3vw, 44px);
    font-weight: 600;
    line-height: 1.15;
    margin: 0 0 clamp(2.4rem, 4vw, 4rem);
    letter-spacing: -1px;
}

.blog-highlight-demo__context {
    font-family: var(--primary-font);
    color: var(--color-blue-soft);
    font-size: clamp(18px, 2vw, 22px);
    line-height: 1.65;
    margin: 0 0 2.4rem;
    max-width: none;
}

.blog-highlight-demo__context:last-child {
    margin-bottom: 0;
}

/* --- components/blog-post/blog-post.css --- */
.blog-post {
    padding-block: 0 10rem;
}

.blog-post__inner {
    max-width: 1920px;
    margin-inline: auto;
    padding-inline: 4rem;
}

.blog-post__featured-image {
    margin-bottom: 5rem;
    max-width: 1350px;
    margin-inline: auto;
}

.blog-post__featured-image-media {
    display: block;
    width: 100%;
    max-height: 540px;
    object-fit: cover;
    border-radius: 0 0 18px 18px;
}

.blog-post__content {
    max-width: 1040px;
    margin-inline: auto;
    padding-inline: 2rem;
    padding-top: 5rem;
    color: var(--color-blue-soft);
    font-family: var(--primary-font);
}

.blog-post__meta {
    display: flex;
    align-items: center;
    gap: 4rem;
    margin-bottom: 4.5rem;
    font-size: 16px;
    letter-spacing: 0;
}

.blog-post__category {
    padding: 1.4rem 2rem;
    border-radius: 6px;
    background-color: var(--color-blue-soft);
    color: #ffffff;
    font-size: 14px;
    line-height: 1;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.blog-post__date {
    color: rgba(39, 51, 71, 0.7);
}

.blog-post__title {
    font-size: clamp(38px, 4vw, 60px);
    line-height: clamp(46px, 4.5vw, 68px);
    font-weight: 600;
    letter-spacing: -2px;
    margin-bottom: 4rem;
}

.blog-post__intro {
    font-size: clamp(20px, 3.4vw, 26px);
    line-height: clamp(28px, 3.4vw, 36px);
    font-weight: 700;
    margin-bottom: 8rem;
}

.blog-post__intro p {
    margin: 0;
}

/* Related block uses class .blog-list__grid; layout rules are scoped below so blog index .blog-list__grid keeps its own spacing in blog.css */
.blog-post__related {
    margin-top: 8rem;
    padding-top: 6rem;
    max-width: var(--container);
    margin-inline: auto;
}

.blog-post__related-inner {
    margin-inline: auto;
}

.blog-post__related-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 2rem;
    margin-bottom: 3rem;
}

.blog-post__related-title {
    font-family: var(--primary-font);
    font-size: clamp(34px, 4vw, 48px);
    font-weight: 600;
    color: var(--color-blue-soft);
    line-height: clamp(40px, 4vw, 58px);
    margin: 0;
    text-transform: uppercase;
    letter-spacing: -2px;
}

.blog-post__related .blog-list__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9rem 8rem;
    margin-bottom: 0;
}

.blog-post__related-footer {
    text-align: center;
    margin-top: 6rem;
}

.blog-post__related-footer-link:hover {
    background-color: var(--btn-bg);
    color: var(--btn-color);
}

.blog-post__related-card {
    border-bottom: 1px solid #2733471A;
    min-height: 100%;
    height: 100%;
    max-height: 100%;
    display: flex;
    flex-direction: column;
    padding-bottom: 7rem;
}

/* Whole-card hit target (wraps media, meta, title, excerpt, CTA) */
.blog-post__related-card-anchor {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    text-decoration: none;
    color: inherit;
    outline: none;
}

.blog-post__related-card-anchor:focus-visible {
    outline: 2px solid var(--color-gold);
    outline-offset: 4px;
    border-radius: 4px;
}

.blog-post__related-media {
    position: relative;
    overflow: hidden;
    border-radius: 18px;
    margin-bottom: 3rem;
    height: 280px;
}

.blog-post__related-img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.35s ease;
}

.blog-post__related-card-anchor:hover .blog-post__related-img,
.blog-post__related-card-anchor:focus-visible .blog-post__related-img {
    transform: scale(1.06);
}

.blog-post__related-category {
    position: absolute;
    left: 2rem;
    bottom: 2rem;
    padding: 1.4rem 2rem;
    border-radius: 6px;
    background-color: var(--color-blue-soft);
    color: #ffffff;
    font-size: 14px;
    line-height: 1;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.blog-post__related-date {
    display: block;
    font-size: 1.4rem;
    line-height: 1.6;
    color: var(--color-blue-soft);
    margin-bottom: 0.8rem;
}

.blog-post__related-card-title {
    font-family: var(--primary-font);
    font-size: 24px;
    font-weight: 600;
    line-height: 32px;
    letter-spacing: -1px;
    margin-bottom: 0.5rem;
    color: var(--color-blue-soft);
    transition: color 0.25s ease;
}

.blog-post__related-card-anchor:hover .blog-post__related-card-title,
.blog-post__related-card-anchor:focus-visible .blog-post__related-card-title {
    color: var(--color-gold);
}

.blog-post__related-card-excerpt {
    font-size: 2rem;
    line-height: 1.5;
    color: var(--color-blue-soft);
    margin-bottom: 2rem;
}

.blog-post__related-card-cta {
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--color-gold);
    text-decoration: none;
    margin-top: auto;
}


.blog-post__contact {
    margin-top: 0;
}

/* Newsletter row (footer layout, blog-post palette: white field, primary CTA, grey legal copy) */
.blog-post__contact .contact__form-placeholder form {
    position: relative;
}

.blog-post__contact .contact__form-placeholder .wpcf7 .wpcf7-response-output {
    margin: 0.5rem 0 0;
    position: absolute;
    top: 100%;
    left: 0;
}

.blog-post__contact .contact__form-placeholder .wpcf7-list-item {
    margin: 0;
}

.blog-post__contact .blog__newsletter-row {
    display: flex;
    gap: 0;
    margin-bottom: 1.5rem;
}

.blog-post__contact .blog__newsletter-field {
    width: calc(100% - 160px);
}

.blog-post__contact .blog__newsletter-input {
    flex: 1;
    min-width: 0;
    padding: 1rem 2.2rem;
    font-size: 16px;
    font-family: inherit;
    background: #ffffff;
    border: none;
    border-radius: 6px 0 0 6px;
    color: #000000;
    height: 58px;
    line-height: 58px;
    width: 100%;
    box-sizing: border-box;
}

.blog-post__contact .blog__newsletter-input::placeholder {
    color: rgba(39, 51, 71, 0.45);
}

.blog-post__contact .blog__newsletter-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 2.4rem;
    height: 58px;
    font-family: var(--primary-font);
    font-size: 1.4rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.1rem;
    text-transform: uppercase;
    text-align: center;
    background: var(--btn-primary-bg);
    border: none;
    border-radius: 6px;
    color: var(--btn-primary-color);
    cursor: pointer;
    white-space: nowrap;
    transition: opacity 0.2s;
    width: 160px;
    box-sizing: border-box;
}

.blog-post__contact .blog__newsletter-btn:hover:not(:disabled) {
    opacity: var(--btn-primary-opacity-hover);
}

.blog-post__contact .blog__newsletter-checkbox {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    font-size: 14px;
    color: rgba(39, 51, 71, 0.55);
    cursor: pointer;
    margin: 0;
}

.blog-post__contact .blog__newsletter-checkbox input {
    margin-top: 0.2rem;
}

.blog-post__contact .blog__newsletter-captcha {
    margin-top: 1.5rem;
    min-height: 78px;
}

.blog-post__contact .blog__link-inline {
    color: rgba(39, 51, 71, 0.55);
    text-decoration: underline;
}

.blog-post__contact .blog__link-inline:hover {
    color: var(--color-gold);
}

@media (max-width: 480px) {
    .blog-post__contact .blog__newsletter-row {
        flex-direction: column;
        gap: 0;
    }

    .blog-post__contact .blog__newsletter-field {
        width: 100%;
    }

    .blog-post__contact .blog__newsletter-input {
        border-radius: 6px;
    }

    .blog-post__contact .blog__newsletter-btn {
        width: 100%;
    }
}

@media (max-width: 1024px) {
    .blog-post {
        padding-block: 0 8rem;
    }

    .blog-post__related .blog-list__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 6rem 4rem;
    }
}

@media (max-width: 900px) {
    .blog-post__related .blog-list__grid {
        grid-template-columns: 1fr;
        gap: 6rem;
    }

    .blog-post__related-card {
        padding-bottom: 6rem;
    }
}

@media (max-width: 767px) {
    .blog-post {
        padding-block: 0 6rem;
    }

    .blog-post__inner {
        padding-inline: 1.6rem;
    }

    .blog-post__featured-image {
        margin-bottom: 3rem;
    }

    .blog-post__meta {
        gap: 2rem;
        flex-direction: column;
        align-items: flex-start;
    }

    .blog-post__related-inner {
        margin-inline: 0;
        padding: 0;
    }

    .blog-post__content {
        padding-inline: 0;
        padding-top: 1rem;
    }

    .blog-post__related .blog-list__grid {
        grid-template-columns: 1fr;
        gap: 6rem;
    }

    .blog-post__related-card {
        padding-bottom: 6rem;
    }

    .blog-post__related-header {
        flex-direction: column;
        align-items: flex-start;
    }

    .blog-post__related-see-all {
        width: 100%;
        text-align: center;
    }
}

/* --- components/blog/blog.css --- */
/* ===========================
      Blog tabs
      =========================== */

.blog-tabs {
    border-bottom: 1px solid #5C7EA720;
}

.blog-tabs__inner {
    margin-inline: auto;
    padding: 0;
}

.blog-tabs__list {
    display: flex;
    flex-wrap: nowrap;
    gap: 5rem;
    list-style: none;
    margin: 0;
    padding: 0;
    justify-content: space-between;
    overflow-x: auto;
    padding-inline: var(--container-padding);
}

.blog-tabs__button {
    border: none;
    border-radius: 0;
    padding: 4rem 1rem;
    padding-top: 5rem;
    background: none;
    color: var(--color-blue-soft);
    font-family: var(--primary-font);
    font-size: clamp(20px, 3.4vw, 28px);
    line-height: clamp(28px, 3.4vw, 40px);
    letter-spacing: -1px;
    cursor: pointer;
    transition: color 0.2s ease, border-color 0.2s ease;
    display: block;
    white-space: nowrap;
}

.blog-tabs__button--active,
.blog-tabs__button:hover {
    border-bottom: 2px solid var(--color-blue);
    color: var(--color-blue-soft);
}

/* ===========================
      Featured + latest posts
      =========================== */

.blog-featured {
    padding-block: 9rem 7rem;
}

.blog-featured__inner {
    margin-inline: auto;
}

.blog-featured__grid {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 8rem;
}

.blog-featured__main-link {
    display: flex;
    flex: 1;
    flex-direction: column;
    align-items: flex-start;
    text-decoration: none;
    color: var(--color-blue-soft);
    width: 100%;
}

.blog-featured__main-media {
    position: relative;
    width: 100%;
}

.blog-featured__main-media-link {
    display: block;
    width: 100%;
    color: inherit;
    text-decoration: none;
}

.blog-featured__main-media .blog-featured__media {
    margin-bottom: 2rem;
}

.blog-featured__media {
    position: relative;
    overflow: hidden;
    border-radius: 18px;
    margin-bottom: 2rem;
    height: 100%;
}

.blog-featured__img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.25s ease;
}

.blog-featured__category {
    padding: 1.4rem 2rem;
    border-radius: 6px;
    background-color: var(--color-blue-soft);
    color: #ffffff;
    font-size: 14px;
    line-height: 1;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    text-decoration: none;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.blog-featured__category:hover {
    background-color: var(--color-green);
    color: var(--color-white);
}

.blog-featured__main-media .blog-featured__category {
    position: absolute;
    left: 2rem;
    bottom: 2rem;
}

.blog-featured__item .blog-featured__category {
    position: static;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1.5rem;
}

.blog-featured__date {
    display: block;
    font-size: 1.6rem;
    line-height: 1.6;
    color: var(--color-blue-soft);
    margin-bottom: 0.8rem;
}

.blog-featured__title,
.blog-list__title {
    font-family: var(--primary-font);
    font-size: clamp(34px, 4vw, 48px);
    font-weight: 600;
    color: var(--color-blue-soft);
    line-height: clamp(40px, 4vw, 58px);
    margin-bottom: 5rem;
    text-transform: uppercase;
    letter-spacing: -2px;
}

.blog-featured__main-title {
    font-family: var(--primary-font);
    font-size: clamp(26px, 4vw, 36px);
    font-weight: 600;
    color: var(--color-blue-soft);
    line-height: clamp(34px, 4vw, 58px);
    margin-bottom: 1rem;
    letter-spacing: -2px;
}

.blog-featured__excerpt,
.blog-featured__main-excerpt {
    font-size: clamp(20px, 4vw, 26px);
    line-height: clamp(34px, 4vw, 36px);
    color: var(--color-blue-soft);
    margin-bottom: 3rem;
}

.blog-featured__main-cta {
    border: 2px solid var(--color-gold);
    color: var(--color-gold);
}

.blog-featured__main-cta:hover {
    background-color: var(--color-gold);
    color: var(--color-white);
}

.blog-featured__main-link:hover .blog-featured__main-title {
    color: var(--color-gold);
}

.blog-featured__list {
    display: flex;
    flex-direction: column;
    gap: 2.4rem;
    justify-content: space-between;
}

/* Slider behavior for featured list (similar to insights slider) */
.blog-featured__slider.swiper {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    justify-content: space-between;
}

.blog-featured__slider.swiper .swiper-wrapper {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding-bottom: 0;
}

.blog-featured__item.swiper-slide {
    width: 100%;
}

/* Keep desktop layout exactly as static list */
@media (min-width: 1025px) {
    .blog-featured__slider.swiper {
        overflow: visible;
    }

    .blog-featured__slider.swiper .swiper-wrapper {
        display: block;
        transform: none;
        width: auto;
    }

    .blog-featured__slider.swiper .swiper-slide {
        width: auto;
        height: auto;
    }
}

.blog-featured__slider-controls {
    display: none;
}

.blog-featured__slider-controls .swiper-scrollbar {
    flex: 1;
    max-width: 100%;
    position: relative;
    height: 2px;
    background-color: rgba(0, 0, 0, 0.1);
    border-radius: 2px;
}

.blog-featured__slider-controls .swiper-scrollbar-drag {
    height: 100%;
    background-color: #1a1c1b;
    border-radius: 2px;
}

.blog-featured__slider-controls .swiper-button-prev,
.blog-featured__slider-controls .swiper-button-next {
    width: 3.6rem;
    height: 3.6rem;
    margin-top: 0;
    position: relative;
    left: 0;
    right: 0;
    top: 0;
    border-radius: 999px;
    border: 1px solid rgba(0, 0, 0, 0.16);
    background-color: var(--color-white);
    color: #1a1c1b;
    transition: border-color 0.2s;
}

.blog-featured__slider-controls .swiper-button-prev::after,
.blog-featured__slider-controls .swiper-button-next::after {
    font-size: 1.2rem;
}

.blog-featured__slider-controls .swiper-button-prev:hover,
.blog-featured__slider-controls .swiper-button-next:hover {
    border-color: rgba(0, 0, 0, 0.4);
}

@media (max-width: 1024px) {

    /* Mobile slider behavior for featured list – same pattern as insights */
    .blog-featured__item.swiper-slide {
        width: 100% !important;
        border: none;
    }

    .blog-featured__slider.swiper {
        display: block;
        overflow: hidden;
        width: 100%;
    }

    .blog-featured__slider.swiper .swiper-wrapper {
        display: flex;
        flex-direction: row;
    }

    .blog-featured__item {
        height: auto;
        width: 100%;
        flex-shrink: 0;
        border: none;
        padding: 0 0 2rem;
    }

    .blog-featured__item:last-child {
        padding-bottom: 2rem;
    }

    .blog-featured__slider-controls {
        display: grid;
        grid-template-columns: 1fr 1fr;
        justify-items: center;
        align-items: center;
        margin-top: 0;
        gap: 2.4rem;
    }

    .blog-featured__slider-controls .swiper-scrollbar {
        grid-column: span 2;
        width: 100%;
    }

    .blog-featured__slider-controls .swiper-button-next {
        margin-right: auto;
    }

    .blog-featured__slider-controls .swiper-button-prev {
        margin-left: auto;
    }

    .blog-list {
        padding-block: 6rem;
    }

    .blog-featured__title,
    .blog-list__title {
        margin-bottom: 4rem;
    }
}

.blog-featured__item {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding-bottom: 2.4rem;
    margin-bottom: 2.4rem;
    border-bottom: 1px solid rgba(39, 51, 71, 0.1);
}

.blog-featured__item:last-child {
    border-bottom: none;
    padding-bottom: 0;
}


.blog-featured__item-content-link {
    display: flex;
    flex: 1;
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
    height: 100%;
    color: inherit;
    text-decoration: none;
}

.blog-featured__item-title {
    font-family: var(--primary-font);
    font-size: 24px;
    font-weight: 600;
    line-height: 32px;
    letter-spacing: -1px;
    margin-bottom: 0.5rem;
    color: var(--color-blue-soft);
}

.blog-featured__item-content-link:hover .blog-featured__item-title {
    color: var(--color-gold);
}

.blog-featured__item-content-link:hover .blog-featured__item-link,
.blog-featured__item-link:hover {
    color: var(--color-blue-soft);
}

.blog-featured__item-excerpt {
    font-size: 2rem;
    line-height: 1.5;
    color: var(--color-blue-soft);
    margin-bottom: 2rem;
}

.blog-featured__item-link {
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--color-gold);
    text-decoration: none;
    margin-top: auto;
    transition: color 0.2s ease;
}

/* .blog-featured__item-link:hover {
    text-decoration: underline;
} */

/* ===========================
      All posts list + pagination
      =========================== */

.blog-list {
    padding-block: 2rem 6rem;
}

.blog-list__inner {
    margin-inline: auto;
}

.blog-list__header {
    margin-bottom: 3rem;
}

.blog-list__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 4rem 8rem;
    margin-bottom: 10rem;
}

/* Article cards use .blog-post__related-* (shared with blog post). Related block grid uses this class too but layout is overridden in blog-post.css via .blog-post__related .blog-list__grid */

.blog-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4rem;
}

.blog-pagination__button {
    position: relative;
    width: 5rem;
    height: 5rem;
    padding: 0;
    border-radius: 4px;
    border: 2px solid var(--color-blue-soft);
    background-color: var(--color-white);
    cursor: pointer;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-content: center;
    justify-content: center;
    align-items: center;
    text-decoration: none;
    transition: border-color 0.2s ease;
}

.blog-pagination__button:hover {
    border-color: var(--color-green);
}

.blog-pagination__button::before {
    content: '';
    display: block;
    width: 2rem;
    height: 2rem;
    background-image: url("../../assets/images/icons/Arrow3.svg");
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
}

.blog-pagination__button--next::before {
    transform: scaleX(-1);
}

.blog-pagination__button:disabled {
    opacity: 0.5;
    cursor: default;
}

.blog-pagination__list {
    display: flex;
    align-items: center;
    gap: 1.4rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.blog-pagination__page {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 5rem;
    height: 5rem;
    border-radius: 4px;
    border: 2px solid var(--color-gold);
    background-color: transparent;
    cursor: pointer;
    font-size: 18px;
    font-weight: 700;
    line-height: 1;
    color: var(--color-gold);
    text-decoration: none;
    transition: border-color 0.2s ease, color 0.2s ease;
}

.blog-pagination__page--active {
    border-color: var(--color-gold);
    background-color: var(--color-gold);
    color: var(--color-white);
    pointer-events: none;
}

.blog-pagination__page:not(.blog-pagination__page--active):hover {
    border-color: var(--color-green);
    color: var(--color-green);
}

/* Match page cell height; width follows the ellipsis character */
.blog-pagination__ellipsis {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 5rem;
    border: 2px solid transparent;
    border-radius: 4px;
    font-size: 18px;
    font-weight: 700;
    line-height: 1;
    color: var(--color-blue);
    user-select: none;
}

.blog-pagination__visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
}

@media (max-width: 1440px) {
    .blog-list__grid {
        gap: 4rem;
    }
}

@media (max-width: 1024px) {
    .blog-featured__grid {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .blog-featured__main-link {
        padding-bottom: 3rem;
        border-bottom: 1px solid #2733471A;
    }

    .blog-featured__list {
        padding-top: 3rem;
    }

    .blog-list__grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767px) {
    .blog-pagination {
        gap: 0.8rem;
    }

    .blog-pagination__button {
        width: 3rem;
        height: 3rem;
    }

    .blog-pagination__button::before {
        width: 1.2rem;
        height: 1.2rem;
    }

    .blog-pagination__list {
        gap: 0.45rem;
    }

    .blog-pagination__page {
        width: 3rem;
        height: 3rem;
        font-size: 1.3rem;
    }

    .blog-pagination__ellipsis {
        height: 3rem;
        font-size: 1.3rem;
    }
}

/* --- components/cards-carousel/cards-carousel.css --- */
.cards-carousel {
    padding-block: 12rem;
    overflow: hidden;
}

.cards-carousel__intro {
    margin-bottom: 6rem;
    text-align: center;
}

.cards-carousel__intro--narrow-content {
    max-width: 1150px;
    margin: auto;
    margin-bottom: 6rem;
}

.cards-carousel__intro--wide-content {
    max-width: 100%;
    margin-bottom: 6rem;
}

.cards-carousel__intro--left {
    text-align: left;
    margin-left: 0;
}

.cards-carousel__intro--right {
    text-align: right;
    margin-right: 0;
}

.cards-carousel__headline {
    font-size: var(--heading-font-size);
    line-height: var(--heading-line-height);
    letter-spacing: var(--heading-letter-spacing);
    text-transform: var(--heading-text-transform);
    color: var(--color-blue-soft);
    font-weight: var(--heading-font-weight);
    margin-bottom: 5rem;
}

.cards-carousel__headline--comecar-poupar {
    font-size: var(--heading-font-size);
    line-height: clamp(40px, 4vw, 90px);
    letter-spacing: -2px;
    text-transform: uppercase;
    color: var(--color-blue-soft);
    font-weight: 300;
    margin-bottom: 24px;
    text-align: center;
}

.cards-carousel__description {
    font-size: clamp(20px, 4vw, 34px);
    font-weight: var(--text-font-weight);
    letter-spacing: var(--text-letter-spacing);
    line-height: clamp(34px, 5vw, 48px);
    color: var(--color-blue-soft);
}

.cards-carousel__description--comecar-poupar {
    font-size: clamp(28px, 4vw, 34px);
    font-weight: var(--text-font-weight);
    letter-spacing: var(--text-letter-spacing);
    line-height: 48px;
    color: var(--color-blue-soft);
    text-align: center;
}

.cards-carousel__slider {
    overflow: visible;
    padding-top: 6rem;
    padding-bottom: 0;
}

.cards-carousel__slider .swiper-wrapper {
    align-items: flex-end;
}

/* Article has both classes on the same element (.swiper-slide.product-carousel-card) */
.cards-carousel__slider .swiper-slide.product-carousel-card {
    margin-left: 0;
    margin-right: 0;
}

.product-carousel-card {
    background-color: var(--color-white);
    border-radius: 2rem;
    box-shadow: 10px 10px 50.3px 0 rgba(0, 0, 0, 0.25);
    overflow: hidden;
    position: relative;
    max-width: 42rem;
    width: 100%;
    margin: 0 1.6rem;
    scroll-snap-align: start;
}

.product-carousel-card:last-child {
    margin-right: 0 !important;
}

.product-carousel-card:hover .product-carousel-card__content-wrapper::after {
    border-color: rgba(0, 0, 0, 0.4);
}

.product-carousel-card:hover .product-carousel-card__image img { 
    transform: scale(1.08);
}

.product-carousel-card--size-regular .product-carousel-card__image {
    height: 33rem;
}

.product-carousel-card--size-large .product-carousel-card__image {
    height: 40rem;
}

.product-carousel-card--size-small .product-carousel-card__image {
    height: 27rem;
}

.product-carousel-card__image {
    position: relative;
    overflow: hidden;
    height: 26rem;
}

.product-carousel-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
}

.product-carousel-card__badge {
    position: absolute;
    left: 2.4rem;
    bottom: 2.4rem;
    padding: 1.5rem 2rem;
    border-radius: 8px;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-white);
    background-color: #f26522;
}

.product-carousel-card--aggressive .product-carousel-card__badge {
    background-color: #f26522;
}

.product-carousel-card--dynamic .product-carousel-card__badge {
    background-color: #f6c82f;
    color: #1a1c1b;
}

.product-carousel-card--moderate .product-carousel-card__badge {
    background-color: #3db679;
}

.product-carousel-card--defensive .product-carousel-card__badge {
    background-color: #2b6be4;
}

.product-carousel-card__body {
    display: flex;
    flex-direction: column;
    padding: 2.5rem 3rem;
}

.product-carousel-card__pill-row {
    margin-bottom: 0.8rem;
}

.product-carousel-card__pill {
    align-items: center;
    font-size: clamp(12px, 4vw, 14px);
    color: var(--color-blue);
}

.product-carousel-card__title {
    font-size: clamp(28px, 4vw, 34px);
    line-height: clamp(28px, 4vw, 34px);
    margin: 1.6rem 0 2rem;
    color: var(--color-blue);
    font-weight: 700;
}

.product-carousel-card__subtitle {
    font-size: clamp(16px, 4vw, 18px);
    color: var(--color-blue);
    margin: 0;
    font-weight: 400;
    line-height: 1.1;
}

.product-carousel-card__meta {
    margin-top: auto;
    padding-top: 1.6rem;
    border-top: 1px solid rgba(0, 0, 0, 0.06);
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    gap: 1.2rem 2rem;
}

.product-carousel-card__meta-item {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.product-carousel-card__meta-label {
    font-size: 1.4rem;
    color: var(--color-blue);
    line-height: 2rem;
    font-weight: 400;
}

.product-carousel-card__meta-value {
    font-size: clamp(18px, 4vw, 20px);
    font-weight: 600;
    line-height: 2.8rem;
    color: var(--color-blue);
}

.product-carousel-card__content-wrapper {
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    margin-bottom: 1.6rem;
    position: relative;
}

.product-carousel-card__content-wrapper > * {
    width: 100%;
    max-width: calc(100% - 8rem);
}

.product-carousel-card__content {
    position: relative;
}

.product-carousel-card__content-wrapper::after {
    content: '';
    position: absolute;
    right: 0;
    top: 0;
    width: 6rem;
    height: 6rem;
    margin-top: 0;
    border-radius: 999px;
    border: 1px solid rgba(0, 0, 0, 0.16);
    color: #1a1c1b;
    transition: border-color 0.2s;
}

.product-carousel-card__content-wrapper::before {
    content: '';
    position: absolute;
    right: 1.8rem;
    top: 2.2rem;
    display: block;
    width: 23px;
    height: 15px;
    background-image: url(../../assets/images/icons/Arrow3.svg);
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
    transform: rotate(180deg);
}

.product-carousel-card__cta {
    right: 2.4rem;
    bottom: 2.4rem;
    width: 6rem;
    margin-right: -5px;
    height: 6rem;
    border-radius: 999px;
    border: 1px solid rgba(0, 0, 0, 0.12);
    background-color: var(--color-white);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.product-carousel-card__cta-arrow {
    width: 2rem;
    height: 2rem;
    color: #1a1c1b;
}

.cards-carousel__footer {
    margin-top: 4rem;
}

.cards-carousel__slider-controls {
    display: flex;
    align-items: center;
    gap: 2.4rem 1.2rem;
    margin-top: 8rem;
}

.cards-carousel__slider .swiper-scrollbar {
    flex: 1;
    max-width: 65rem;
    position: relative;
    height: 2px;
    background-color: rgba(0, 0, 0, 0.1);
    border-radius: 2px;
    margin-right: 6rem;
}

.cards-carousel__slider .swiper-button-prev,
.cards-carousel__slider .swiper-button-next {
    width: 6rem;
    height: 6rem;
    margin-top: 0;
    position: relative;
    left: 0;
    right: 0;
    top: 0;
    border-radius: 999px;
    border: 1px solid rgba(0, 0, 0, 0.16);
    background-color: var(--color-white);
    color: #1a1c1b;
    transition: border-color 0.2s;
}

.cards-carousel__slider .swiper-button-prev:hover,
.cards-carousel__slider .swiper-button-next:hover {
    border-color: rgba(0, 0, 0, 0.4);
}

.cards-carousel__slider .swiper-button-prev::after,
.cards-carousel__slider .swiper-button-next::after {
    content: '';
    display: block;
    width: 23px;
    height: 15px;
    background-image: url("../../assets/images/icons/Arrow3.svg");
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
}

.cards-carousel__slider .swiper-button-next::after {
    transform: scaleX(-1);
}

.cards-carousel__slider .swiper-scrollbar-drag {
    height: 100%;
    background-color: #1a1c1b;
    border-radius: 2px;
    cursor: grab;
}

.cards-carousel__slider .swiper-scrollbar-drag:active {
    cursor: grabbing;
}

.cards-carousel__buttons {
    display: flex;
    gap: 1.6rem;
    flex-wrap: wrap;
    margin-top: 3rem;
}

/* Grid variant: center buttons and add extra top spacing */
.cards-carousel.cards-carousel--grid .cards-carousel__buttons {
    justify-content: center;
    margin-top: 6rem; /* +3rem (~30px) over base */
}

/* Grid variant: static 3-column layout, centred last row */
.cards-carousel.cards-carousel--grid .cards-carousel__slider {
    padding-top: 4rem;
}

.cards-carousel.cards-carousel--grid .cards-carousel__slider .swiper-wrapper {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: stretch;
    gap: 3rem;
}

.cards-carousel.cards-carousel--grid .cards-carousel__slider .swiper-slide {
    width: auto;
    flex: 0 1 calc(33.333% - 2rem);
    display: flex;
    height: auto;
}

.cards-carousel.cards-carousel--grid .product-carousel-card {
    max-width: 36rem;
    margin: 0;
    display: flex;
    flex-direction: column;
    height: 100%;
}

.cards-carousel.cards-carousel--grid .product-carousel-card__link {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 100%;
}

.cards-carousel.cards-carousel--grid .product-carousel-card__body {
    flex: 1;
}

.cards-carousel.cards-carousel--grid .product-carousel-card__meta {
    margin-top: auto;
}

.cards-carousel.cards-carousel--grid .cards-carousel__slider-controls {
    display: none;
}

@media (min-width: 768px) {
    .cards-carousel__slider .swiper-slide {
        min-width: 42rem;
    }

    /* Grid variant: keep three columns on desktop only */
    .cards-carousel.cards-carousel--grid .cards-carousel__slider .swiper-slide {
        flex: 0 1 calc(33.333% - 2rem);
        max-width: 36rem;
        min-width: 36rem;
    }
}

@media (min-width: 1580px) {
    /* Padding left to the slider */
    .cards-carousel.cards-carousel--pad-left .cards-carousel__slider {
        padding-left: var(--container-padding);
        padding-right: var(--container-padding);
    }

    .cards-carousel.cards-carousel--grid .cards-carousel__slider .swiper-slide {
        max-width: 42rem;
        min-width: 42rem;
    }
}

@media (max-width: 767px) {
    .product-carousel-card__content-wrapper > * {
        max-width: calc(100% - 6rem);
    }

    .product-carousel-card__subtitle {
        line-height: 1.3;
    }
    
    .cards-carousel__slider .swiper-button-prev, 
    .cards-carousel__slider .swiper-button-next,
    .product-carousel-card__content-wrapper::after {
        width: 4.2rem;
        height: 4.2rem;
    }

    .cards-carousel__slider .swiper-button-prev::after, 
    .cards-carousel__slider .swiper-button-next::after {
        width: 2rem;
        height: 1.2rem;
    }

    .product-carousel-card__content-wrapper::before {
        right: 1.2rem;
        top: 1.5rem;
        width: 2rem;
        height: 1.4rem;
    }

    .cards-carousel {
        padding-block: 8rem 4rem;
    }

    .cards-carousel__headline {
        margin-bottom: 2rem;
    }

    .cards-carousel__description {
        max-width: 100%;
    }

    .cards-carousel__slider {
        padding-top: 0;
        padding-left: 0;
    }

    .cards-carousel__slider .swiper-slide {
        width: min(42rem, calc(100% - 4rem));
    }

    .product-carousel-card {
        margin: 0;
    }

    .product-carousel-card--size-large .product-carousel-card__image,
    .product-carousel-card--size-regular .product-carousel-card__image,
    .product-carousel-card--size-small .product-carousel-card__image {
        height: 25rem;
    }

    .product-carousel-card__body {
        padding: 3rem 2rem;
    }

    .product-carousel-card__cta {
        width: 4rem;
        height: 4rem;
    }

    .product-carousel-card__title {
        margin: 1rem 0;
    }

    .product-carousel-card__meta {
        display: flex;
        gap: 2rem;
        flex-direction: column;
    }

    .cards-carousel__slider-controls {
        display: grid;
        grid-template-columns: 1fr 1fr;
        justify-items: center;
        align-items: center;
    }

    .cards-carousel__slider .swiper-scrollbar {
        max-width: 100%;
        grid-column: span 2;
        margin-right: 0;
    }

    .cards-carousel__slider .swiper-button-next {
        margin-right: auto;
    }

    .cards-carousel__slider .swiper-button-prev {
        margin-left: auto;
    }

    .cards-carousel__buttons {
        margin-bottom: 3rem;
    }

    .cards-carousel__buttons .button {
        width: 90%;
        margin-inline: auto;
    }

    .cards-carousel__intro {
        margin-bottom: 2rem;
    }

    /* Grid variant: single column on mobile */
    .cards-carousel.cards-carousel--grid .cards-carousel__slider .swiper-wrapper {
        justify-content: flex-start;
    }

    .cards-carousel.cards-carousel--grid .cards-carousel__slider .swiper-slide {
        flex: 0 1 100%;
        width: 100%;
        max-width: none;
    }

    .cards-carousel.cards-carousel--grid .cards-carousel__slider-controls {
        display: none;
    }

}

/* --- components/contact-form/contact-form.css --- */
.contact {
    padding-block: 120px;
}

.contact_narrow-width .contact__inner {
    max-width: 1400px;
}

.contact_narrow-width .contact__title {
    max-width: 600px;
}

.contact_narrow-width .contact__text {
    max-width: 620px;
}

.contact_narrow-width .contact__form-placeholder {
    max-width: 700px;
    width: 100%;
    justify-self: start;
}

.contact_narrow-width.contact_text-align-center .contact__form-placeholder {
    justify-self: center;
}

.contact_wide-form .contact__inner {
    grid-template-columns: 1fr 1.5fr;
}

.contact__inner.contact_large-gap {
    gap: 160px;
}

.contact_text-align-center .contact__inner {
    grid-template-columns: 1fr;
    gap: 48px;
}

.contact_text-align-center .contact__content {
    text-align: center;
    align-items: center;
}

.contact_text-align-right .contact__content {
    align-items: flex-end;
    text-align: right;
}

.contact_background-light {
    background-color: rgba(39, 51, 71, 0.08);
}

.contact__inner {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 80px;
    align-items: flex-start;
    margin-inline: auto;
}


.contact__content {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.contact__title {
    font-weight: 300;
    text-transform: uppercase;
    font-size: clamp(40px, 3.4vw, 68px);
    line-height: clamp(50px, 3.4vw, 80px);
    letter-spacing: -2px;
    color: var(--color-blue);
}

.contact__text p {
    font-weight: 400;
    font-size: clamp(24px, 3.4vw, 34px);
    line-height: clamp(36px, 3.4vw, 48px);
    letter-spacing: -1px;
    color: var(--color-blue);
}

@media (max-width: 900px) {
    .contact_wide-form .contact__inner, 
    .contact__inner,
    .contact_text-align-right .contact__inner,
    .contact__inner.contact_large-gap {
        grid-template-columns: 1fr;
        gap: 48px;
    }

    .contact_text-align-right .contact__content {
        text-align: left;
        align-items: flex-start;
    }
}

@media (max-width: 600px) {
    .contact {
        padding-block: 80px;
    }
}

/* --- components/ebooks/ebooks.css --- */
/* ===========================
   Ebooks
   =========================== */

@import url('https://fonts.googleapis.com/css2?family=Ubuntu:wght@700&display=swap');

.ebooks {
    padding-block: var(--spacing-default);
}

.ebooks__header {
    text-align: center;
    margin-bottom: clamp(4rem, 5vw, 9rem);
}

.ebooks__title {
    font-size: clamp(38px, 5vw, 80px);
    font-weight: 300;
    line-height: clamp(48px, 5vw, 120px);
    letter-spacing: -0.05em;
    text-transform: uppercase;
    color: var(--color-blue-soft);
}

/* Track width = one column of a 3-up row; 1–2 items stay centered, 3 fill the row */
.ebooks {
    --ebooks-gap-x: 7.8rem;
    --ebooks-gap-y: 4rem;
    --ebooks-columns: 3;
}

.ebooks__grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: stretch;
    gap: var(--ebooks-gap-y) var(--ebooks-gap-x);
}

.ebooks__item {
    --ebooks-item-width: calc((100% - (var(--ebooks-columns) - 1) * var(--ebooks-gap-x)) / var(--ebooks-columns));
    flex: 0 0 var(--ebooks-item-width);
    width: var(--ebooks-item-width);
    max-width: 100%;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding-bottom: 4.6rem;
    border-bottom: 1px solid rgba(39, 51, 71, 0.1);
}

.ebooks__cover {
    display: block;
    margin-bottom: 3.8rem;
    flex-shrink: 0;
}

.ebooks__cover-img {
    display: block;
    width: 230px;
    height: 320px;
    object-fit: cover;
}

.ebooks__item-title {
    font-family: var(--primary-font);
    font-weight: 600;
    font-size: 24px;
    line-height: 32px;
    letter-spacing: -0.03em;
    color: var(--color-blue-soft);
    margin-bottom: 1.5rem;
}

.ebooks__item-text {
    font-family: var(--primary-font);
    font-weight: 400;
    font-size: 20px;
    line-height: 28px;
    letter-spacing: 0;
    color: var(--color-blue-soft);
    margin-bottom: 2.5rem;
    flex: 1;
}

.ebooks__item-link {
    font-family: 'Ubuntu', sans-serif;
    font-weight: 700;
    font-size: 14px;
    line-height: 1;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--color-gold);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    transition: all var(--transition);
}

.ebooks__item-link:hover {
    color: var(--color-blue-soft);
}


/* ===========================
   Responsive
   =========================== */

@media (max-width: 1200px) {
    .ebooks {
        --ebooks-gap-x: 4rem;
        --ebooks-gap-y: 5rem;
    }

    .ebooks__cover-img {
        width: 100%;
        height: auto;
        aspect-ratio: 230 / 320;
        max-width: 230px;
    }
}

@media (max-width: 767px) {
    .ebooks {
        --ebooks-columns: 1;
        --ebooks-gap-x: 2.4rem;
        --ebooks-gap-y: 4rem;
    }

    .ebooks__item-text {
        font-size: 16px;
        line-height: 24px;
    }

    .ebooks__item-title {
        font-size: 20px;
        line-height: 28px;
    }
}

@media (max-width: 480px) {
    .ebooks {
        --ebooks-columns: 1;
        --ebooks-gap-x: 0rem;
        --ebooks-gap-y: 5rem;
    }

    .ebooks__item {
        flex: 0 0 min(100%, 42rem);
        width: min(100%, 42rem);
        max-width: 100%;
    }
}


/* --- components/faqs/faqs.css --- */
.faqs {
    padding-block: 10rem;
    position: relative;
}

.faqs__wrapper {
    display: grid;
    grid-template-columns: 1fr 1.8fr;
    gap: 6rem;
}

.faqs__heading {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: flex-start;
    gap: 4rem;
}

.faqs__title {
    font-size: clamp(38px, 4vw, 80px);
    font-weight: 300;
    line-height: clamp(46px, 4vw, 90px);
    letter-spacing: -2px;
    color: var(--color-blue-soft);
    text-align: right;
    text-transform: uppercase;
}

.faqs__description {
    font-size: clamp(20px, 4vw, 22px);
    font-weight: 400;
    line-height: clamp(34px, 4vw, 30px);
    letter-spacing: 0px;
    color: var(--color-blue-soft);
    text-align: right;
}

.faqs__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.faqs__answer-text {
    font-weight: 400;
    font-size: clamp(14px, 2.5vw, 20px);
    line-height: clamp(22px, 2.5vw, 30px);
}

.faqs__item {
    background-color: #2431410D;
    border-radius: 8px;
    cursor: pointer;
    width: 95%;
    transition: width 0.3s ease-in-out;
}

.faqs__item:hover .faqs__question {
    color: var(--color-gold);
    opacity: 0.85;
}

.faqs__item.active {
    width: 100%;
}

.faqs__question {
    font-weight: 400;
    padding: 2.7rem 3rem;
    padding-right: 10rem;
    font-size: clamp(14px, 3vw, 22px);
    line-height: 1.3;
    color: var(--color-blue);
    cursor: pointer;
    list-style: none;
    position: relative;
    transition: color 0.25s ease;
}

.faqs__question::after {
    content: "";
    position: absolute;
    right: 1.2rem;
    top: 50%;
    transform: translateY(-50%);
    width: 5.4rem;
    height: 5.4rem;
    background-color: rgba(255, 255, 255, 0.6);
    border-radius: 50%;
    background-image: url("../../assets/images/icons/arrow-down-blue.svg");
    background-repeat: no-repeat;
    background-position: center;
    transition: transform 0.35s ease;
}

.faqs__item.active .faqs__question::after {
    transform: translateY(-50%) rotate(180deg);
    background-image: url("../../assets/images/icons/arrow-gold.svg");
}

.faqs__item.active .faqs__question {
    color: var(--color-gold);
    font-weight: 700;
}

.faqs__question:hover {
    color: var(--color-blue);
    opacity: 0.85;
}

.faqs__answer {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.45s cubic-bezier(0.4, 0, 0.2, 1);
    overflow: hidden;
    font-size: clamp(14px, 4vw, 18px);
    line-height: clamp(22px, 4vw, 24px);
    padding-right: 3.2rem;
}

.faqs__item.active .faqs__answer {
    grid-template-rows: 1fr;
}

.faqs__answer-inner {
    overflow: hidden;
    min-height: 0;
    padding-top: 0;
    padding-bottom: 0;
    color: var(--color-blue-soft);
    opacity: 0;
    padding-right: 10rem;
    transition:
        padding 0.35s ease,
        opacity 0.25s ease 0s;
}

.faqs__item.active .faqs__answer-inner {
    padding: 0 2.7rem 3rem;
    opacity: 1;
    transition:
        padding 0.35s ease,
        opacity 0.3s ease 0.12s;
}

.faqs__answer-inner *:last-child {
    margin-bottom: 0;
}

.faqs__answer-inner>*:first-child {
    margin-top: 0;
}

.faqs__footer {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 3rem;
    margin-top: 8rem;
    padding: 0 3rem;
}

.faqs__footer-text {
    font-size: clamp(20px, 4vw, 22px);
    font-weight: 400;
    line-height: clamp(34px, 4vw, 30px);
    letter-spacing: 0px;
    color: var(--color-blue-soft);
}

@media (max-width: 1024px) {
    .faqs {
        padding-block: 8rem;
    }

    .faqs__wrapper {
        grid-template-columns: 1fr;
        gap: 5rem;
    }

    .faqs__footer {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 3rem;
        margin-top: 5rem;
        padding: 0 1.6rem;
    }

    .faqs__item {
        width: 100%;
    }

    .faqs__heading {
        align-items: flex-start;
        gap: 2rem;
    }

    .faqs__title {
        text-align: left;
    }

    .faqs__description {
        text-align: left;
        max-width: 100%;
    }

    .faqs__question {
        padding: 1.6rem;
        padding-right: 7rem;
    }

    .faqs__question::after {
        width: 3.6rem;
        height: 3.6rem;
        background-size: 50%;
    }

    .faqs__item.active .faqs__answer-inner {
        padding: 1rem 1.6rem 3rem;
        padding-right: 3rem;
    }
}

@media (max-width: 767px) {
    .faqs {
        padding-block: 6rem;
    }
}

/* --- components/footer/footer.css --- */
.footer {
    background-color: var(--color-blue-footer);
    color: var(--color-white);
    font-size: 1.4rem;
    line-height: 1.4;
    font-family: var(--primary-font);
}

.footer--form-btn-first .footer__newsletter-btn {
    order: -1;
}

.footer__main {
    padding-top: 7rem;
}

.footer__grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    grid-template-rows: auto auto;
    column-gap: clamp(6rem, 8vw, 14rem);
    row-gap: 7rem;
    border-bottom: 1px solid #ffffff1a;
    padding-bottom: 7rem;
}

/* Row 2, col 1 */
.footer__col--left {
    display: flex;
    flex-direction: column;
    gap: 7rem;
    margin-top: -5rem;
}

/* Row 2, cols 2+3 — spans 2 columns, internal 2-col grid (1 row, 2 columns) */
.footer__menus {
    grid-column: span 2;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(4rem, 6vw, 10rem);
    align-content: start;
    padding-left: 5rem;
    padding-top: 2rem;
}

/* Each column in menus contains 2 menus stacked vertically */
.footer__menus-col {
    display: flex;
    flex-direction: column;
    gap: 5rem;
}

.footer__brand {
    display: flex;
    align-items: flex-start;
    align-content: flex-start;
    height: 100%;
    transition: transform 0.3s ease;
}

.footer__brand:hover {
    transform: scale(1.02);
}

.footer__logo {
    width: 100%;
    height: auto;
    object-fit: contain;
    flex-shrink: 0;
}

.footer__heading {
    font-size: clamp(18px, 4vw, 20px);
    font-weight: 600;
    color: var(--color-white);
}

.footer__newsletter,
.footer__apps {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.footer__newsletter {
    container-name: footer-newsletter;
    container-type: inline-size;
}

.footer__newsletter-desc {
    font-size: clamp(16px, 4vw, 18px);
    color: rgba(255, 255, 255, 0.55);
    line-height: 1.4;
    max-width: 95%;
    font-weight: 400;
}

.footer__newsletter-form {
    margin-top: 0.5rem;
}

.footer__newsletter-form form {
    position: relative;
}

.footer__newsletter-form .wpcf7 .wpcf7-response-output {
    margin: 0.5rem 0 0;
    position: absolute;
    top: 100%;
    left: 0;
}

.footer__newsletter-form .wpcf7-list-item {
    margin: 0;
}

.footer__newsletter-row {
    display: flex;
    gap: 0;
    margin-bottom: 1.5rem;
}

.footer__newsletter-field {
    width: calc(100% - 160px);
}

.footer__newsletter-input {
    flex: 1;
    min-width: 0;
    padding: 1rem 2.2rem;
    font-size: 16px;
    font-family: inherit;
    background: rgba(255, 255, 255, 0.05);
    border: none;
    border-radius: 6px 0 0 6px;
    color: var(--color-white);
    height: 42px;
    line-height: 42px;
    width: 100%;
}

.footer__newsletter-input::placeholder {
    color: #fff;
    opacity: 1;
}

.footer__newsletter-btn {
    padding: 0 2.4rem;
    height: 42px;
    line-height: 40px;
    font-size: clamp(12px, 4vw, 14px);
    font-weight: 500;
    letter-spacing: 0.06em;
    font-family: inherit;
    background: transparent;
    border: 1px solid var(--color-white);
    border-radius: 6px;
    color: var(--color-white);
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.2s, border-color 0.2s;
    width: 160px;
}

.footer__newsletter-btn:hover {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.5);
}

/* Stack field + CTA when the newsletter block is narrower than 400px (viewport-independent) */
@container footer-newsletter (max-width: 399px) {
    .footer__newsletter-row {
        flex-direction: column;
        gap: 0;
    }

    .footer__newsletter-field {
        width: 100%;
    }

    .footer__newsletter-input {
        border-radius: 6px;
    }

    .footer__newsletter-btn {
        width: 100%;
    }
}

.footer__newsletter-checkbox {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    font-size: 14px;
    color: rgba(255, 255, 255, 0.55);
    cursor: pointer;
    margin: 0;
}

.footer__newsletter-checkbox input {
    margin-top: 0.2rem;
}

.footer__newsletter-captcha {
    margin-top: 1.5rem;
    min-height: 78px;
}

.footer__newsletter-form ._form-thank-you {
    font-size: 16px;
    line-height: 1.4;
    color: var(--color-white);
}

.footer__link-inline {
    color: rgba(255, 255, 255, 0.55) !important;
    text-decoration: underline !important;
}

.footer__link-inline:hover {
    color: var(--color-gold);
}

.footer__apps-desc {
    font-size: clamp(16px, 4vw, 18px);
    color: rgba(255, 255, 255, 0.55);
    line-height: 1.4;
    max-width: 95%;
    font-weight: 400;
}

.footer__store-btns {
    display: grid;
    grid-template-columns: auto auto;
    gap: 1.5rem;
    margin-right: 7.5rem;
}

.footer__store-btn {
    display: inline-flex;
    align-items: center;
    transition: all 0.3s ease-in-out;
    width: auto;
}

.footer__store-btn:hover {
    transform: scale(1.05);
}

.footer__store-icon {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.footer__store-text {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    line-height: 1.2;
}

.footer__store-text small {
    font-size: 0.8rem;
    font-weight: 400;
    opacity: 0.85;
}

.footer__store-name {
    font-weight: 700;
    font-size: 1.4rem;
}

.footer__contact {
    display: flex;
    flex-direction: column;
    gap: 3.5rem;
}

.footer__contact-item {
    color: var(--color-white);
    text-decoration: none;
    display: inline-flex;
    align-items: flex-start;
    gap: 2rem;
    font-size: clamp(17px, 4vw, 24px);
    font-weight: 500;
    transition: 0.3s;
}

.footer__contact-item--email:hover,
.footer__contact-item--whatsapp:hover {
    color: var(--color-gold);
}

.footer__contact-icon {
    color: var(--color-gold);
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
}

.footer__contact-icon img {
    width: 28px;
    height: 28px;
}

.footer__contact-item--phone {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 2rem;
}

.footer__phone-info {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.footer__phone-number {
    font-size: clamp(17px, 4vw, 24px);
    color: var(--color-white);
    text-decoration: none;
    line-height: 1.2;
    transition: 0.3s;
}

.footer__contact-item--phone,
.footer__contact-item--whatsapp,
.footer__contact-item--email {
    font-weight: 700;
}

.footer__phone-number:hover {
    color: var(--color-gold);
}

.footer__phone-note {
    font-size: clamp(14px, 4vw, 16px);
    color: var(--color-white);
    font-weight: 400;
}

.footer__social {
    display: flex;
    flex-direction: column;
    gap: 2rem;
    margin-bottom: 2rem;
}

.footer__social-title {
    font-weight: 600;
    font-size: 18px;
}

.footer__social-icons {
    display: flex;
    align-items: center;
    gap: 3rem;
}

.footer__social-link a {
    color: var(--color-white);
    transition: all 0.3s ease-in-out;
}

.footer__social-link a:hover {
    color: var(--color-gold);
}

.footer__social-icon {
    display: block;
    width: 28px;
    height: 28px;
    object-fit: contain;
    transition: transform 0.3s ease;
}

.footer__social-link:hover .footer__social-icon {
    transform: scale(1.1);
}

.footer__nav-col {
    display: flex;
    flex-direction: column;
    gap: 5rem;
}

.footer__nav-heading {
    font-size: clamp(18px, 4vw, 20px);
    font-weight: 600;
    color: var(--color-white);
    text-decoration: none;
    margin-bottom: 0.4rem;
    transition: 0.3s;
}

.footer__nav-col-group {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.footer__nav-heading:hover {
    color: var(--color-gold);
}

.footer__nav-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.footer__nav-link {
    font-size: clamp(16px, 4vw, 18px);
    font-weight: 300;
    color: rgba(255, 255, 255, 0.8);
    text-decoration: none;
    transition: 0.3s;
}

.footer__nav-link:hover {
    color: var(--color-gold);
}

.footer__bottom {
    padding: 4rem 0;
}

.footer__bottom-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
    align-items: center;
}

.footer__bottom-left {
    display: flex;
    flex-direction: row;
    gap: 3rem;
}

.footer__bottom-right {
    display: flex;
    justify-content: flex-end;
}

.footer__copyright,
.footer__credits {
    margin: 0;
    font-size: 1.2rem;
    color: var(--color-white);
}

.footer__credits-link {
    color: var(--color-white);
    text-decoration: none;
    font-weight: 700;
}

.footer__credits-link img {
    margin-bottom: -4px;
    transition: transform 0.3s ease;
}

.footer__credits-link img:hover {
    transform: scale(1.05);
}

.footer__credits-link:hover {
    color: var(--color-gold);
}

.footer__legal {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 3rem;
}

.footer__legal-link {
    font-size: 1.2rem;
    color: var(--color-white);
    text-decoration: none;
    transition: 0.3s;
}

.footer__legal-link:hover {
    color: var(--color-gold);
}

@media (max-width: 1300px) {
    .footer__grid {
        grid-template-columns: 1fr 1fr;
        gap: 6rem;
    }

    /* Column 1: logo, socials, info, menus */
    .footer__brand {
        grid-row: 1;
        grid-column: 1;
    }

    .footer__social {
        grid-row: 2;
        grid-column: 1;
    }

    .footer__contact {
        grid-row: 3;
        grid-column: 1;
    }

    /* Column 2: newsletter, apps - spans rows 2-3 to match socials + info height */
    .footer__col--left {
        grid-row: 2 / 4;
        grid-column: 2;
    }

    /* Menus span both columns at the bottom */
    .footer__menus {
        grid-row: 4;
        grid-column: 1 / -1;
        padding: 0;
    }

    .footer__col--left {
        margin-top: 0;
    }
}

@media (max-width: 1024px) {
    .footer__main {
        padding-top: 5rem;
    }

    .footer__grid {
        grid-template-columns: 1fr;
        row-gap: 5rem;
        padding-bottom: 5rem;
    }

    /* Order: logo, socials, info, menus, newsletter, apps */
    .footer__brand {
        grid-row: 1;
        grid-column: 1;
    }

    .footer__social {
        grid-row: 2;
        grid-column: 1;
        align-items: flex-start;
    }

    .footer__contact {
        grid-row: 3;
        grid-column: 1;
    }

    .footer__menus {
        grid-row: 4;
        grid-column: 1;
        grid-template-columns: 1fr;
    }

    .footer__newsletter {
        grid-row: 5;
        grid-column: 1;
        margin-top: 2rem;
    }

    .footer__apps {
        grid-row: 6;
        grid-column: 1;
    }

    .footer__col--left {
        display: contents;
    }

    .footer__menus-col {
        gap: 2.5rem;
    }

    .footer__store-btns {
        margin-right: 20rem;
    }

    .footer__bottom-inner {
        display: flex;
        flex-direction: column-reverse;
        gap: 4rem;
    }

    .footer__bottom-right {
        justify-content: flex-start;
    }

    .footer__legal {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        column-gap: 3rem;
        row-gap: 0.5rem;
        justify-content: center;
    }

    .footer__bottom-left {
        display: flex;
        flex-direction: column-reverse;
        gap: 0.5rem;
        align-items: center;
    }

    .footer__bottom {
        padding-bottom: 8rem;
    }
}

@media (max-width: 767px) {
    .footer__store-btns {
        margin-right: 0;    
    }
}

/* --- components/generic-form/generic-form.css --- */
/* Generic form (e.g. Contact Form 7) — light panel, two-column row, gold submit */

.generic-form {
    --generic-form-label: #2c3e50;
    --generic-form-label-muted: #5a6c7d;
    --generic-form-input-bg: #ffffff;
    --generic-form-input-border: 1px solid rgba(39, 51, 71, 0.08);
    --generic-form-placeholder: #6b7280;
    --generic-form-radius: 4px;
    --generic-form-submit-bg: #c19428;
    --generic-form-submit-color: #ffffff;
    --generic-form-chevron: #243141;

    display: grid;
    /* Email column ~20% wider than telefone (1.2fr vs 1fr) */
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
    column-gap: clamp(12px, 2vw, 20px);
    row-gap: clamp(18px, 2.5vw, 24px);
    border-radius: var(--generic-form-radius);
    font-family: var(--primary-font, 'Montserrat', sans-serif);
}

.generic-form label {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 0;
    font-weight: 700;
    font-size: 1.4rem;
    line-height: 1.3;
    color: var(--generic-form-label);
}

/* CF7: optional hint is a bare <span> before .wpcf7-form-control-wrap (not the wrap itself) */
.generic-form label > span:not(.wpcf7-form-control-wrap) {
    font-weight: 400;
    color: var(--generic-form-label-muted);
    margin-left: 0.35em;
}

/* Keep label + optional on one line; field full width below (Contact Form 7 default markup) */
.generic-form label:has(> span:not(.wpcf7-form-control-wrap)) {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: baseline;
    column-gap: 0;
}

.generic-form label:has(> span:not(.wpcf7-form-control-wrap)) .wpcf7-form-control-wrap {
    flex: 1 0 100%;
    width: 100%;
    min-width: 100%;
}

.generic-form .wpcf7-form-control-wrap {
    display: block;
    width: 100%;
}

.generic-form input[type='text'],
.generic-form input[type='email'],
.generic-form input[type='tel'] {
    width: 100%;
    margin: 0;
    padding: 12px 14px;
    font: inherit;
    font-weight: 400;
    font-size: 1.4rem;
    color: var(--generic-form-label);
    background-color: var(--generic-form-input-bg);
    border: var(--generic-form-input-border);
    border-radius: var(--generic-form-radius);
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.generic-form input[type='text']::placeholder,
.generic-form input[type='email']::placeholder,
.generic-form input[type='tel']::placeholder {
    color: var(--generic-form-placeholder);
    opacity: 1;
}

.generic-form input[type='text']:focus,
.generic-form input[type='email']:focus,
.generic-form input[type='tel']:focus {
    outline: none;
    border-color: rgba(36, 49, 65, 0.25);
    box-shadow: 0 0 0 2px rgba(36, 49, 65, 0.06);
}

.generic-form select.wpcf7-select {
    width: 100%;
    margin: 0;
    padding: 12px 40px 12px 14px;
    font: inherit;
    font-weight: 400;
    font-size: 1.4rem;
    color: var(--generic-form-label);
    background-color: var(--generic-form-input-bg);
    border: var(--generic-form-input-border);
    border-radius: var(--generic-form-radius);
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%23243141' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    background-size: 12px 8px;
    cursor: pointer;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.generic-form select.wpcf7-select:focus {
    outline: none;
    border-color: rgba(36, 49, 65, 0.25);
    box-shadow: 0 0 0 2px rgba(36, 49, 65, 0.06);
}

.generic-form select.wpcf7-select:required:invalid {
    color: var(--generic-form-placeholder);
}

.generic-form select.wpcf7-select option[value=''] {
    color: var(--generic-form-placeholder);
}

.generic-form select.wpcf7-select option:not([value='']) {
    color: var(--generic-form-label);
}

/* Layout: nome full width; email + telefone; PPR full width; actions */
.generic-form > label:nth-child(1) {
    grid-column: 1 / -1;
}

.generic-form > label:nth-child(2) {
    grid-column: 1;
}

.generic-form > label:nth-child(3) {
    grid-column: 2;
}

.generic-form > label:nth-child(4) {
    grid-column: 1 / -1;
}

/* Direct submit + spinner (no wrapper) — matches Contact Form 7 output */
.generic-form > input[type='submit'].wpcf7-submit {
    grid-column: 1;
    justify-self: start;
    margin: 4px 0 0;
    padding: 14px clamp(32px, 5vw, 48px);
    font-family: inherit;
    font-weight: 700;
    font-size: 1.4rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--generic-form-submit-color);
    background-color: var(--generic-form-submit-bg);
    border: none;
    border-radius: var(--generic-form-radius);
    cursor: pointer;
    transition: opacity 0.2s ease, transform 0.15s ease;
}

.generic-form > input[type='submit'].wpcf7-submit:hover {
    opacity: 0.92;
}

.generic-form > input[type='submit'].wpcf7-submit:active {
    transform: translateY(1px);
}

.generic-form > .wpcf7-spinner {
    grid-column: 2;
    align-self: center;
    justify-self: start;
    position: relative !important;
    top: auto !important;
    left: auto !important;
    margin: 4px 0 0 !important;
    transform: none !important;
}

@media (max-width: 600px) {
    .generic-form > label:nth-child(2),
    .generic-form > label:nth-child(3) {
        grid-column: 1 / -1;
    }

    .generic-form > input[type='submit'].wpcf7-submit {
        grid-column: 1 / -1;
    }

    .generic-form > .wpcf7-spinner {
        grid-column: 1 / -1;
        margin-top: 0 !important;
    }
}

/* --- components/grid-icon-with-text/grid-icon-with-text.css --- */
/* ===========================
      Variant modifiers
      =========================== */

      .grid-icon-with-text--icon-background .grid-icon-with-text__icon {
        background-color: var(--color-beige);
    }

    /* Single-column list layout (e.g. ppr-detail) */
    .grid-icon-with-text--columns-list .grid-icon-with-text__steps {
        display: grid;
        grid-template-columns: 1fr;
        gap: 13rem;
    }
    
    .grid-icon-with-text--bg-gradient {
        background: linear-gradient(158.55deg, #273347 19.97%, #5C7EA7 99.13%);
    }
    
    .grid-icon-with-text--bg-gradient .grid-icon-with-text__title,
    .grid-icon-with-text--bg-gradient .grid-icon-with-text__subtitle,
    .grid-icon-with-text--bg-gradient .grid-icon-with-text__title-item,
    .grid-icon-with-text--bg-gradient .grid-icon-with-text__title-item--alt,
    .grid-icon-with-text--bg-gradient .grid-icon-with-text__title-item--gradiant,
    .grid-icon-with-text--bg-gradient .grid-icon-with-text__text,
    .grid-icon-with-text--bg-gradient .grid-icon-with-text__text--alt {
        color: var(--color-white);
    }
    
    .grid-icon-with-text--bg-gradient-background {
        background: linear-gradient(158.55deg, #273347 19.97%, #5C7EA7 99.13%);
    }
    
    .grid-icon-with-text--bg-gradient-background .grid-icon-with-text__title,
    .grid-icon-with-text--bg-gradient-background .grid-icon-with-text__subtitle,
    .grid-icon-with-text--bg-gradient-background .grid-icon-with-text__title-item,
    .grid-icon-with-text--bg-gradient-background .grid-icon-with-text__title-item--alt,
    .grid-icon-with-text--bg-gradient-background .grid-icon-with-text__title-item--gradiant,
    .grid-icon-with-text--bg-gradient-background .grid-icon-with-text__text,
    .grid-icon-with-text--bg-gradient-background .grid-icon-with-text__text--alt {
        color: var(--color-white);
    }
    
    .grid-icon-with-text--big-icons .grid-icon-with-text__symbol {
        width: 10rem;
        height: 10rem;
    }
    
    .grid-icon-with-text--big-icons .grid-icon-with-text__icon {
        width: 20rem;
        height: 20rem;
    }

    .grid-icon-with-text--small-icons .grid-icon-with-text__symbol {
        width: 4.8rem;
        height: 4.8rem;
    }
    
    .grid-icon-with-text--small-icons .grid-icon-with-text__icon {
        width: 9rem;
        height: 9rem;
    }
    
    /* Two-column list layout */
    .grid-icon-with-text--2-columns-list .grid-icon-with-text__steps {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 5rem 15rem;
        justify-items: center;
    }
    
    /* Background + width helpers */
    .grid-icon-with-text--background {
        background-color: var(--color-beige);
    }
    
    .grid-icon-with-text--narrow-width {
        max-width: 1500px;
    }
    
    /* Two-column split (text + grid) */
    .grid-icon-with-text {
        padding-block: 8rem 10rem;
    }

    .grid-icon-with-text--2-columns .grid-icon-with-text__title,
    .grid-icon-with-text--2-columns .grid-icon-with-text__subtitle { 
        text-align: left;
    }

    .grid-icon-with-text--2-columns .grid-icon-with-text__header-alt .grid-icon-with-text__title,
    .grid-icon-with-text--2-columns .grid-icon-with-text__header-alt .grid-icon-with-text__subtitle {
        text-align: right;
    }
    
    .grid-icon-with-text--2-columns {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 20rem;
        justify-items: center;
        align-items: center;
    }
    
    .grid-icon-with-text--2-columns .grid-icon-with-text__steps {
        flex-direction: column;
        gap: 3rem;
    }

    .grid-icon-with-text--2-columns .grid-icon-with-text__title-item {
        font-size: 20px;
        margin-top: 0;
        margin-bottom: 1rem;
    }

    .grid-icon-with-text--2-columns .grid-icon-with-text__text--alt {
        font-size: 16px;
        line-height: 24px;
        margin-block-end: 0;
    }
    
    .grid-icon-with-text--2-columns .grid-icon-with-text__item {
        flex-direction: row;
        gap: 5rem;
    }
    
    .grid-icon-with-text--2-columns .grid-icon-with-text__content {
        text-align: left;
    }
    
    .grid-icon-with-text--2-columns .grid-icon-with-text__header {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        text-align: left;
        align-content: flex-start;
    }

    .grid-icon-with-text--2-columns .grid-icon-with-text__header-alt {
        text-align: right;
    }
    
    /* ===========================
          Base block + elements
          =========================== */
    
    .grid-icon-with-text__header {
        display: flex;
        flex-direction: column;
        align-content: center;
        align-items: center;
    }
    
    .grid-icon-with-text__title {
        font-size: clamp(32px, 5vw, 8rem);
        font-weight: 300;
        line-height: clamp(36px, 5vw, 90px);
        letter-spacing: -2px;
        color: var(--color-blue-soft);
        text-transform: uppercase;
        margin-bottom: 1rem;
        -webkit-font-smoothing: antialiased;
        text-align: center;
    }

    .grid-icon-with-text__title:only-child {
        margin-bottom: clamp(4rem, 4vw, 8rem);
    }
    
    .grid-icon-with-text__title-alt {
        font-size: clamp(32px, 5vw, 48px);
        font-weight: 600;
        line-height: clamp(36px, 5vw, 58px);
        letter-spacing: -2px;
        color: var(--color-blue-soft);
        text-transform: uppercase;
        margin-bottom: 1rem;
        -webkit-font-smoothing: antialiased;
    }
    .grid-icon-with-text__subtitle {
        font-size: clamp(20px, 4vw, 34px);
        font-weight: 400;
        color: var(--color-blue-soft);
        margin-bottom: 8rem;
        line-height: clamp(32px, 4vw, 48px);
        letter-spacing: -1px;
        -webkit-font-smoothing: antialiased;
        text-align: center;
    }
    
    .grid-icon-with-text__steps-no-description {
        display: grid;
        grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
        gap: 10rem;
        justify-content: center;
        align-content: flex-start;
        align-items: start;
    }
    
    .grid-icon-with-text__steps-default {
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
        gap: 22rem;
        justify-content: center;
        align-content: flex-start;
        align-items: start;
    }
    
    .grid-icon-with-text__steps {
        display: flex;
        flex-wrap: nowrap;
        gap: 6rem;
        justify-content: center;
        align-items: flex-start;
    }
    
    .grid-icon-with-text__item {
        display: flex;
        flex-direction: column;
        align-items: center;
        text-align: center;
        width: 100%;
    }
    
    .grid-icon-with-text--with-arrows .grid-icon-with-text__item,
    .grid-icon-with-text__steps--with-arrows .grid-icon-with-text__item {
        position: relative;
    }
    
    .grid-icon-with-text--with-arrows .grid-icon-with-text__item:not(:last-child)::after,
    .grid-icon-with-text__steps--with-arrows .grid-icon-with-text__item:not(:last-child)::after {
        content: "";
        position: absolute;
        top: 6rem;
        transform: translateY(-50%);
        left: calc(100% + 3rem - 1.75rem);
        width: 3.5rem;
        height: 3rem;
        background-image: url("../../assets/images/icons/arrow.svg");
        background-repeat: no-repeat;
        background-size: contain;
        background-position: center;
    }
    
    .grid-icon-with-text__icon {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border-radius: 50%;
        background: var(--color-gold);
        width: 12rem;
        height: 12rem;
        aspect-ratio: 1;
    }

    .grid-icon-with-text__icon-alt {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border-radius: 50%;
        background: var(--color-gold);
        width: 0rem;
        height: 0rem;
        aspect-ratio: 1;
    }
    
    .grid-icon-with-text__number {
        color: #fff;
        font-size: 48px;
        font-weight: 500;
        line-height: 60px;
        letter-spacing: 0;
    }
    
    .grid-icon-with-text__symbol {
        width: 45px;
        height: 45px;
        object-fit: contain;
        color: #fff;
        position: relative;
    }
    
    .grid-icon-with-text__title-item {
        font-size: 24px;
        font-weight: 700;
        color: var(--color-blue-soft);
        line-height: 28px;
        letter-spacing: 0px;
        margin-block: 1rem;
    }
    
    .grid-icon-with-text__title-item--alt {
        font-size: 24px;
        font-weight: 700;
        color: var(--color-blue-soft);
        line-height: 36px;
        letter-spacing: 0px;
        margin-block: 1rem;
    }
    
    .grid-icon-with-text__title-item--gradiant {
        font-size: clamp(28px, 4vw, 32px);
        font-weight: 600;
        color: var(--color-white);
        line-height: clamp(36px, 4vw, 44px);
        margin-block: 1rem;
        text-transform: uppercase;
    }
    
    .grid-icon-with-text__text {
        font-size: clamp(18px, 2vw, 24px);
        line-height: clamp(24px, 2vw, 36px);
        color: var(--color-blue-soft);
        letter-spacing: 0px;
        margin-block: 1rem;
    }
    
    .grid-icon-with-text__text--alt {
        font-size: clamp(18px, 4vw, 24px);
        line-height: clamp(24px, 4vw, 36px);
        color: var(--color-blue-soft);
        letter-spacing: 0px;
        margin-block: 1rem;
        font-weight: 400;
    }
    
    .grid-icon-with-text__text--gradiant {
        font-weight: 400;
        font-size: 20px;
        line-height: 36px;
        color: var(--color-white);
        letter-spacing: 0px;
        margin-block: 1rem;
    }
    
    
    /* ===========================
          Responsive behaviour
          =========================== */

    @media (min-width: 1200px) and (max-width: 1500px) { 
        .grid-icon-with-text--2-columns {
            gap: 10rem;
        }
    }
    
    @media (max-width: 1200px) {
    
        /* Default stacked steps */
        .grid-icon-with-text__steps {
            flex-direction: column;
            gap: 6rem;
            max-width: 60%;
            margin: auto;
            align-items: center;
        }
    
        /* Two-column split collapses to single column */
        .grid-icon-with-text--2-columns {
            grid-template-columns: 1fr;
            gap: 2rem;
        }
    
        .grid-icon-with-text--2-columns .grid-icon-with-text__steps {
            gap: 3rem;
        }
    
        .grid-icon-with-text--2-columns .grid-icon-with-text__item {
            flex-direction: column;
            align-items: center;
            text-align: center;
            gap: 1rem;
        }
    
        .grid-icon-with-text--2-columns .grid-icon-with-text__content {
            text-align: center;
        }
    
        /* Two-column list collapses to single column */
        .grid-icon-with-text--2-columns-list .grid-icon-with-text__steps {
            grid-template-columns: 1fr;
            gap: 6rem;
            justify-items: stretch;
            max-width: 100%;
        }

        .grid-icon-with-text--2-columns .grid-icon-with-text__header-alt .grid-icon-with-text__title, 
        .grid-icon-with-text--2-columns .grid-icon-with-text__header-alt .grid-icon-with-text__subtitle {
            text-align: center;
        }
    
        .grid-icon-with-text--with-arrows .grid-icon-with-text__item:not(:last-child)::after,
        .grid-icon-with-text__steps--with-arrows .grid-icon-with-text__item:not(:last-child)::after {
            top: auto;
            bottom: -4rem;
            left: 50%;
            right: auto;
            transform: translateX(-50%) rotate(90deg);
        }
    }
    
    @media (max-width: 767px) {    
        /* Allow steps to use full width on small screens */
        .grid-icon-with-text__steps {
            max-width: 100%;
        }
    
        /* Global text centering on mobile */
        .grid-icon-with-text__header,
        .grid-icon-with-text__title,
        .grid-icon-with-text__subtitle,
        .grid-icon-with-text__item,
        .grid-icon-with-text__content,
        .grid-icon-with-text__text,
        .grid-icon-with-text__text--alt,
        .grid-icon-with-text__title-item,
        .grid-icon-with-text__title-item--alt {
            text-align: center;
            align-items: center;
            width: 100%;
            gap: 1rem;
        }

        .grid-icon-with-text__steps .grid-icon-with-text__item {
            gap: 2rem;
        }

        .grid-icon-with-text {
            padding-block: 6rem;
        }

        .grid-icon-with-text__subtitle {
            margin-bottom: 4rem;
        }

        .grid-icon-with-text__icon {
            width: 10rem;
            height: 10rem;
        }

        .grid-icon-with-text--big-icons .grid-icon-with-text__symbol {
            width: 4rem;
            height: 4rem;
        }
        
        .grid-icon-with-text--big-icons .grid-icon-with-text__icon {
            width: 10rem;
            height: 10rem;
        }

        .grid-icon-with-text--big-icons .grid-icon-with-text__title-item {
            font-size: 20px;
            line-height: 24px;
        }

        .grid-icon-with-text--big-icons .grid-icon-with-text__text--alt {
            font-size: 16px !important;
            line-height: 24px;
        }
    }



/* --- components/header/header-with-main-menu.css --- */
@import "../header/header.css";
@import "../main-menu/main-menu.css";


/* --- components/header/header.css --- */
.header {
    position: absolute;
    top: 0;
    z-index: 9;
    background: transparent;
    background-color: transparent;
    width: 100%;
    min-height: 192px;
}

.header:before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 150%;
    background: linear-gradient(to bottom,
            rgba(0, 0, 0, 1) 0%,
            rgba(0, 0, 0, 0.4) 40%,
            rgba(0, 0, 0, 0) 100%);
    z-index: 0;
    opacity: 0.5;
    pointer-events: none;
}

.header__inner {
    max-width: 1920px;
    margin: 0 auto;
    padding: 3rem;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: start;
    gap: 8rem;
    justify-items: center;
    position: relative;
    z-index: 1;
}

.header__nav-left {
    display: flex;
    align-items: center;
    justify-self: start;
    gap: 2.8rem;
    padding: 0 5rem;
    padding-top: 1rem;
    height: 72px;
}

.header__nav-link {
    color: #ffffff;
    text-decoration: none;
    font-size: 1.8rem;
    line-height: 2.4rem;
    letter-spacing: 0;
    text-transform: uppercase;
}

.header__logo {
    height: 130px;
    width: fit-content;
}

.header__logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-fit: top;
}

.header__actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    justify-self: end;
    gap: 4rem;
}

.header__action-link {
    display: flex;
    align-items: center;
    gap: 0.8rem;
    color: #ffffff;
    text-decoration: none;
    font-size: 1.6rem;
    font-weight: 400;
    line-height: 2.4rem;
    letter-spacing: 0;
}

/* Inline SVG icons – inherit color so header--light can override */
.header__icon {
    display: block;
    color: inherit;
}

.header__icon svg {
    display: block;
    width: 100%;
    height: 100%;
}

.header__icon--qmark {
    width: 28px;
    height: 28px;
}

.header__icon--mglass {
    width: 21px;
    height: 22px;
}

.header__icon--bmenu {
    width: 26px;
    height: 18px;
}

.header__login-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 10.2rem;
    height: 4rem;
    border: var(--btn-border);
    border-radius: var(--btn-border-radius);
    background-color: var(--btn-bg);
    color: var(--btn-color);
    font-size: 1.2rem;
    font-weight: 500;
    line-height: 100%;
    letter-spacing: 0.05em;
    text-align: center;
    text-transform: uppercase;
    text-decoration: none;
    transition: opacity 0.2s;
}

.header__login-btn:hover {
    opacity: var(--btn-opacity-hover);
}

.header__menu-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 7.2rem;
    height: 7.2rem;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.2);
    background: none;
    color: #ffffff;
    cursor: pointer;
    padding: 0;
}

.header__nav-link,
.header__action-link,
.header__menu-btn {
    transition: opacity 0.2s;
}

.header__nav-link:hover,
.header__action-link:hover,
.header__menu-btn:hover {
    opacity: 0.75;
}

/* Light variant (used for non-floating header demos/pages) */
.header--light {
    position: relative;
    top: auto;
    background-color: #ffffff;
    box-shadow: 0px 1px 0px 0px #0000001A;
}

.header--light::before {
    display: none;
}

.header--light .header__nav-link,
.header--light .header__action-link {
    color: var(--color-blue-soft);
}

.header--light .header__menu-btn {
    border-color: var(--color-blue-soft);
    color: var(--color-blue-soft);
}

.header--light .header__action-link img {
    filter: brightness(0) saturate(100%);
}

.header--light .header__menu-btn img {
    filter: none;
}

@media (max-width: 1440px) {
    .header__nav-left {
        padding: 0;
    }

    .header__action-link span {
        display: none;
    }
}

@media (max-width: 1024px) {
    .header {
        min-height: 112px;
        padding: 1.5rem 0;
    }

    .header__inner {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
        padding: 0 2rem;
        align-items: center;
        position: relative;
    }

    .header__nav-left,
    .header__action-link,
    .header__login-btn {
        display: none;
    }

    .header__logo {
        height: 80px;
        grid-column: 2;
        justify-self: center;
    }

    .header__actions {
        grid-column: 3;
        justify-self: end;
        gap: 1.5rem;
    }

    .header__menu-btn {
        width: 52px;
        height: 52px;
    }
}

/* --- components/how-it-works/how-it-works.css --- */
.how-it-works {
    padding-block: 8rem 10rem;
}

.how-it-works__title {
    font-size: clamp(3.6rem, 5vw, 8rem);
    font-weight: 300;
    line-height: 90px;
    letter-spacing: -3%;
    color: var(--color-blue-soft);
    text-align: center;
    text-transform: uppercase;
    margin-bottom: 1rem;
}

.how-it-works__subtitle {
    font-size: 34px;
    font-weight: 400;
    color: var(--color-blue-soft);
    text-align: center;
    margin-bottom: 8rem;
    line-height: 48px;
    letter-spacing: -1px;
}

.how-it-works__steps {
    display: grid;
    grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr;
    gap: 4rem;
    justify-content: center;
    align-content: flex-start;
    align-items: start;
}

.how-it-works__step {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    width: 100%;
}

.how-it-works__number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 12rem;
    height: 12rem;
    border-radius: 50%;
    background: var(--color-gold);
    color: #fff;
    font-size: 48px;
    font-weight: 500;
    line-height: 60px;
    letter-spacing: 0;
    margin-bottom: 1.5rem;
    position: relative;
}

.how-it-works__step-title {
    font-size: 24px;
    font-weight: 700;
    color: var(--color-blue-soft);
    line-height: 28px;
    letter-spacing: 0px;
    margin-bottom: 0.8rem;
}

.how-it-works__step-text {
    font-size: 16px;
    line-height: 24px;
    color: var(--color-blue-soft);
    letter-spacing: 0px;
    margin: 0;
}

.how-it-works__arrow {
    color: #b0b8c2;
    margin-top: calc((120px - 28px) / 2);
}


@media (max-width: 1200px) {
    .how-it-works__steps {
        grid-template-columns: 1fr;
        gap: 4rem;
        max-width: 60%;
        margin: auto;
        justify-items: center;
    }

    .how-it-works__arrow {
        margin-top: 0;
        transform: rotate(90deg);
    }
}

@media (max-width: 767px) {
    .how-it-works__steps {
        max-width: 100%;
    }
}

/* --- components/image-with-text/image-with-text.css --- */
/* Base section (variant 1 – white, image left, 2 buttons) */
.image-with-text {
    padding-block: 12rem;
}

/* .image-with-text__inner {
    max-width: 1550px;
    margin-inline: auto;
    padding-inline: 2rem;
} */

.image-with-text--full-width {
    padding-block: 0;
}

.image-with-text--full-width .image-with-text__inner {
    max-width: 1920px;
    padding-inline: 0;
}

/* Full-width layout: 50% image / 50% content with equal height */
.image-with-text--full-width .image-with-text__card {
    align-items: stretch;
    --image-with-text-gap: 0;
}

.image-with-text--full-width .image-with-text__card-media,
.image-with-text--full-width .image-with-text__card-content {
    flex: 0 0 50%;
    max-width: 50%;
}

.image-with-text--full-width .image-with-text__card-media {
    display: flex;
}

.image-with-text--full-width .image-with-text__img_1 {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 0;
}

.image-with-text--full-image {
    padding-block: 0;
}

.image-with-text--full-image .image-with-text__img_1 {
    border-radius: 0;
}

.image-with-text--full-image .image-with-text__card-content {
    padding: 9rem;
}

.image-with-text--bg-color {
    background-color: #EEEFF1;
}

/* Title */
.image-with-text__main-title {
    text-align: center;
    color: var(--color-blue-soft);
    font-size: clamp(38px, 5vw, 80px);
    font-weight: 300;
    letter-spacing: -2px;
    line-height: 1.1;
    text-transform: uppercase;
}

.image-with-text__main-title span {
    color: inherit;
}

.image-with-text__main-subtitle {
    text-align: center;
    font-size: clamp(20px, 2.7vw, 28px);
    font-weight: 400;
    line-height: 1.4;
    color: var(--color-blue-soft);
    margin-top: 3rem;
}

/* Card layout: image + content */
.image-with-text--right-aligned-content .image-with-text__card-content {
    align-items: flex-end;
    text-align: right;
}

.image-with-text--right-aligned-content .image-with-text__buttons {
    justify-content: flex-end;
}

.image-with-text__card {
    position: relative;
    display: flex;
    align-items: center;
    margin-top: 9rem;
    --image-with-text-gap: 9.4rem;
    /* default = 94px */
    gap: var(--image-with-text-gap);
}

.image-with-text--card-distance-larger .image-with-text__card {
    margin-top: 18rem;
}

.image-with-text__card:only-child,
.image-with-text__card:first-child {
    margin-top: 0;
}

.image-with-text__card-media {
    position: relative;
    flex: 0 1 calc((100% - var(--image-with-text-gap)) / 2);
    max-width: calc((100% - var(--image-with-text-gap)) / 2);
    min-width: 0;
}

.image-with-text__card-media--small {
    flex: 0 1 calc((100% - var(--image-with-text-gap)) / 2.5);
    max-width: calc((100% - var(--image-with-text-gap)) / 2.5);
    min-width: 0;
}

.image-with-text__img_1 {
    display: block;
    width: 100%;
    border-radius: 20px;
    object-fit: cover;
    position: relative;
    z-index: 1;
}

/* Content column */
.image-with-text__card-content {
    position: relative;
    z-index: 1;
    flex: 0 1 calc((100% - var(--image-with-text-gap)) / 2);
    max-width: 62%;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 5rem;
    color: var(--color-blue-soft);
}

.image-with-text__card-content-small-gap {
    gap: 3rem;
}

.image-with-text__card-title {
    font-size: clamp(28px, 4vw, 42px);
    line-height: clamp(40px, 4vw, 52px);
    font-weight: 600;
    letter-spacing: -2px;
    text-transform: uppercase;
    color: var(--color-blue-soft);
}

.image-with-text__card-title--large {
    font-size: clamp(36px, 4vw, 80px);
    line-height: clamp(46px, 4vw, 80px);
    font-weight: 300;
    letter-spacing: -2px;
    text-transform: uppercase;
    color: var(--color-blue-soft);
}

.image-with-text__card-title--sub {
    font-size: clamp(28px, 4vw, 34px);
    line-height: clamp(40px, 4vw, 44px);
    font-weight: 400;
    letter-spacing: -1px;
}

.image-with-text__card-text,
.image-with-text__card-text li {
    font-size: clamp(18px, 4vw, 24px);
    font-weight: 400;
    line-height: 1.4;
    color: var(--color-blue-soft);
}

.image-with-text__list-item .image-with-text__card-text {
    line-height: 1.3;
    margin-top: 0;
}

.image-with-text__card-text {
    margin-top: .5rem;
}

.image-with-text__card-text--large {
    font-size: clamp(22px, 4vw, 32px);
    line-height: clamp(34px, 4vw, 48px);
}

.image-with-text__card-content-item p {
    margin-bottom: 2rem;
}

.image-with-text__card-content-item p:last-child {
    margin-bottom: 0;
}

/* Checklist */
.image-with-text__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 1.2rem;
    margin-bottom: 2rem;
}

.image-with-text__list:last-child {
    margin-bottom: 0;
}

.image-with-text__list-item {
    display: flex;
    align-items: flex-start;
    gap: 1.6rem;
    color: var(--color-blue-soft);
    font-size: clamp(16px, 2.2vw, 24px);
    line-height: clamp(24px, 2.2vw, 36px);
}

.image-with-text__list-icon {
    width: 2.8rem;
    height: 2.8rem;
    background: url('../../assets/images/icons/check-step.svg') no-repeat center center;
    background-size: contain;
    flex: 0 0 2.8rem;
    margin-top: .55rem;
}

/* Buttons */
.image-with-text__buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 2rem;
    width: 100%;
}

.image-with-text .button--secondary {
    background-color: transparent;
    color: var(--color-gold);
    border: 2px solid var(--color-gold);
}

.image-with-text .button--secondary:hover {
    background-color: var(--btn-tertiary-color);
    color: var(--color-blue-dark);
}

/* ==========================================================================
      Section variants (combine on the <section> element)
      ========================================================================== */

/* Reverse layout: texto à esquerda, imagem à direita (mesma ordem HTML: media, content) */
.image-with-text--reverse .image-with-text__card {
    flex-direction: row-reverse;
}

/* Gaps */
.image-with-text--gap-small .image-with-text__card {
    --image-with-text-gap: 9.4rem;
    /* 94px */
}

.image-with-text--gap-large .image-with-text__card {
    --image-with-text-gap: 23rem;
    /* 230px */
}

/* Background gradient + texto branco */
.image-with-text--bg-gradient {
    background: linear-gradient(to right, #273347 0%, #5C7EA7 100%);
}

.image-with-text--bg-gradient .image-with-text__main-title,
.image-with-text--bg-gradient .image-with-text__card-title,
.image-with-text--bg-gradient .image-with-text__card-text {
    color: #ffffff;
}

.image-with-text--bg-gradient .image-with-text__main-title span {
    color: var(--color-gold);
}

.image-with-text--bg-gradient .image-with-text__main-subtitle {
    color: #ffffff;
}

.image-with-text--bg-gradient .button--secondary {
    border-color: #ffffff;
    color: #ffffff;
}

/* Content com fundo e padding */
.image-with-text--overlaped-content-surface .image-with-text__card {
    gap: 0;
}

.image-with-text--overlaped-content-surface .image-with-text__card-content {
    padding: 8rem 9rem;
    padding-left: 36rem;
    margin-left: -15rem;
    border-radius: 40px;
    background: #58779E;
    z-index: 0;
    flex: auto;
}

/* Versão reversed: espelha o overlap para o lado direito */
.image-with-text--reverse.image-with-text--overlaped-content-surface .image-with-text__card-content {
    padding: 7rem 7rem;
    padding-left: 7rem;
    padding-right: 36rem;
    margin-left: 0;
    margin-right: -15rem;
    border-radius: 40px;
    background: #58779E;
}

/* Pequena imagem quando existe content surface overlapped */
.image-with-text--overlaped-content-surface .image-with-text__card-media--small {
    margin-top: -8rem;
}

/* Quadrado em baixo da imagem */
.image-with-text--image-square .image-with-text__card-media::before {
    content: '';
    position: absolute;
    left: 0;
    bottom: -4rem;
    width: 70%;
    height: 60%;
    background: #10151e;
    border-radius: 32px;
    z-index: 1;
}

.image-with-text--reverse.image-with-text--image-square .image-with-text__card-media::before {
    left: auto;
    right: 0;
}

/* Círculo em baixo da imagem */
.image-with-text--image-circle .image-with-text__card-media::before {
    content: '';
    position: absolute;
    right: -18%;
    bottom: -18%;
    width: 70%;
    aspect-ratio: 1;
    background: #177d7b;
    border-radius: 50%;
    z-index: 1;
}

/* with rectangle blue background */
.image-with-text--rectangle-blue-background .image-with-text__card-media::before {
    background: var(--color-blue-soft) !important;
}

/* with rectangle light blue background */
.image-with-text--rectangle-light-blue-background .image-with-text__card-media::before {
    background: var(--color-blue-light) !important;
}

/* with rectangle in 45º angle bottom left */
.image-with-text--rectangle-asset-bottom-left-angle .image-with-text__card-media::before {
    content: '';
    position: absolute;
    left: -18%;
    bottom: -18%;
    width: 70%;
    height: 60%;
    background: #BF901E;
    border-radius: 118px;
    z-index: 1;
    transform: rotate(-45deg);
}

.image-with-text--rectangle-asset-bottom-right-angle .image-with-text__card-media::before {
    content: '';
    position: absolute;
    right: -18%;
    bottom: -18%;
    width: 70%;
    height: 60%;
    background: #BF901E;
    border-radius: 118px;
    z-index: 1;
    transform: rotate(45deg);
}

/* ==========================================================================
      Asset variants used in HTML demos
      ========================================================================== */

/* With circle asset bottom right */
.image-with-text--circle-asset-bottom-right .image-with-text__card-media::before {
    content: '';
    position: absolute;
    right: -18%;
    bottom: -18%;
    width: 70%;
    aspect-ratio: 1;
    background: var(--color-green);
    border-radius: 50%;
    z-index: 1;
}

/* With circle asset bottom left */
.image-with-text--circle-asset-bottom-left .image-with-text__card-media::before {
    content: '';
    position: absolute;
    left: -18%;
    bottom: -18%;
    width: 70%;
    aspect-ratio: 1;
    background: var(--color-green);
    border-radius: 50%;
    z-index: 1;
}

/* With rectangle asset top right */
.image-with-text--rectangle-asset-bottom-right .image-with-text__card-media::before {
    content: '';
    position: absolute;
    right: -16%;
    bottom: -12%;
    width: 80%;
    height: 60%;
    background: #BF901E;
    border-radius: 118px;
    z-index: 1;
}

/* With rectangle asset top left */
.image-with-text--rectangle-asset-bottom-left .image-with-text__card-media::before {
    content: '';
    position: absolute;
    left: -16%;
    bottom: -12%;
    width: 80%;
    height: 60%;
    background: #BF901E;
    border-radius: 118px;
    z-index: 1;
}

/* ==========================================================================
      Grid icon with text (single item usage inside image-with-text)
      Copied from grid-icon-with-text.css so this demo section matches styles
      ========================================================================== */
.grid-icon-with-text--icon-left .grid-icon-with-text__steps {
    gap: 12rem;
}

.grid-icon-with-text--icon-left .grid-icon-with-text__item {
    flex-direction: row;
}

.grid-icon-with-text--icon-left .grid-icon-with-text__content {
    text-align: left;
}

.grid-icon-with-text--icon-left .grid-icon-with-text__text--alt {
    font-size: 20px;
}

.grid-icon-with-text__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    width: 100%;
    justify-content: flex-start;
    gap: 4rem;
}

.grid-icon-with-text__symbol {
    width: clamp(4rem, 5vw, 6rem);
    height: clamp(4rem, 5vw, 6rem);
    object-fit: contain;
    color: #fff;
    position: relative;
}

.grid-icon-with-text__title-item {
    font-size: 24px;
    font-weight: 700;
    color: var(--color-blue-soft);
    line-height: 28px;
    letter-spacing: 0;
    margin-block: 1rem;
}

/* .grid-icon-with-text__text--alt {
    font-size: 24px;
    line-height: 36px;
    color: var(--color-blue-soft);
    letter-spacing: 0;
    margin-block: 1rem;
} */

/* ==========================================================================
      Responsive
      ========================================================================== */

@media(min-width: 1200px) and (max-width: 1680px) {
    .image-with-text__card-media {
        flex: 0 1 calc((100% - var(--image-with-text-gap)) / 2);
        max-width: calc((100% - var(--image-with-text-gap)) / 2);
    }
} 

@media (max-width: 1200px) {
    .image-with-text--reverse.image-with-text--overlaped-content-surface .image-with-text__card-content {
        max-width: 100%;
        width: 100%;
    }

    .image-with-text--gap-large .image-with-text__card {
        --image-with-text-gap: 9.4rem;
    }

    .grid-icon-with-text--icon-left .grid-icon-with-text__steps {
        max-width: 100%;
        gap: 5rem;
    }

    .image-with-text__card {
        flex-direction: column;
        gap: 4.5rem;
    }

    .image-with-text__card-media {
        max-width: 100%;
        flex: 1;
        width: 100%;
    }

    .image-with-text__img_1 {
        max-height: 600px;
    }

    .image-with-text__card-content {
        max-width: 100%;
        width: 100%;
        gap: 2rem;
    }

    .image-with-text--reverse .image-with-text__card {
        flex-direction: column;
    }

    .image-with-text--reverse.image-with-text--overlaped-content-surface .image-with-text__card-content {
        max-width: 100%;
        padding: 7rem 3rem;
        padding-top: 20rem;
        flex: 1;
        width: 100%;
        margin: 0;
        margin-top: -5rem;
        text-align: left;
        align-items: flex-start !important;
    }

    /* Full-width: stack image and content on tablet/mobile */
    .image-with-text--full-width .image-with-text__card {
        --image-with-text-gap: 4.5rem;
    }

    .image-with-text--full-width .image-with-text__card-media,
    .image-with-text--full-width .image-with-text__card-content {
        flex: 1 1 100%;
        max-width: 100%;
    }

    .image-with-text--full-width .image-with-text__img_1 {
        height: auto;
    }
}

@media (max-width: 1024px) {
    .image-with-text__card {
        margin-top: 6rem;
    }

    .image-with-text {
        padding-block: 6rem;
        overflow: hidden;
    }

    .image-with-text--full-image .image-with-text__card-content {
        padding: 5rem;
        padding-top: 0;
    }

    /* Use the small horizontal gap value on tablet, even when gap-large is set */
    .image-with-text--gap-large .image-with-text__card {
        --image-with-text-gap: 9.4rem;
    }

    .image-with-text--overlaped-content-surface .image-with-text__card {
        padding: 0;
        border-radius: 32px;
    }

    /* Reset overlap on tablet/mobile so layout doesn't break */
    .image-with-text--overlaped-content-surface .image-with-text__card-content,
    .image-with-text--reverse.image-with-text--overlaped-content-surface .image-with-text__card-content {
        padding: 6rem 3rem;
        padding-top: 12rem;
        margin-left: 0;
        margin-right: 0;
        max-width: 100%;
        width: 100%;
        border-radius: 32px;
    }

    .image-with-text--overlaped-content-surface .image-with-text__card-media--small {
        margin-top: 0;
    }

    /* Decorative assets on tablet: keep bottom-left on the left, bottom-right on the right */
    .image-with-text--image-square .image-with-text__card-media::before,
    .image-with-text--circle-asset-bottom-left .image-with-text__card-media::before,
    .image-with-text--rectangle-asset-bottom-left .image-with-text__card-media::before,
    .image-with-text--rectangle-asset-bottom-left-angle .image-with-text__card-media::before {
        left: -20%;
        right: auto;
        bottom: -3rem;
        width: 85%;
        height: 65%;
        max-width: none;
        transform: none;
        z-index: 1;
        border-radius: 46px;
    }

    .image-with-text--image-circle .image-with-text__card-media::before,
    .image-with-text--circle-asset-bottom-right .image-with-text__card-media::before,
    .image-with-text--rectangle-asset-bottom-right .image-with-text__card-media::before,
    .image-with-text--rectangle-asset-bottom-right-angle .image-with-text__card-media::before {
        left: auto;
        right: -30%;
        bottom: -3rem;
        width: 75%;
        max-width: none;
        transform: none;
    }

    /* Preserve rotation for angled rectangles on tablet */
    .image-with-text--rectangle-asset-bottom-left-angle .image-with-text__card-media::before {
        transform: rotate(-45deg);
        border-radius: 46px;
    }

    .image-with-text--rectangle-asset-bottom-right-angle .image-with-text__card-media::before {
        transform: rotate(45deg);
        border-radius: 46px;
    }
}

@media (max-width: 767px) {
    .image-with-text--full-width-mobile-buttons .image-with-text__buttons .button {
        width: 100%;
    }

    .image-with-text__card {
        margin-top: 4rem;
    }
    
    .grid-icon-with-text--icon-left .grid-icon-with-text__item {
        flex-direction: column;
    }

    .image-with-text--card-distance-larger .image-with-text__card {
        margin-top: 6rem;
    }

    .image-with-text__main-subtitle {
        margin-top: 1rem;
    }

    .image-with-text {
        overflow: hidden;
    }

    .image-with-text--full-image .image-with-text__card-content {
        padding-inline: 2rem;
    }

    .grid-icon-with-text__item {
        flex-direction: column;
        align-content: center;
        text-align: center;
    }

    .image-with-text__main-title {
        font-size: clamp(28px, 5vw, 38px);
    }
}

/* --- components/insights/insights.css --- */
.insights {
    background: #fff;
    padding-block: 14rem 6rem;
    padding-top: 25rem;
}


.insights__header {
    margin-bottom: 4rem;
}

.insights__title {
    font-family: var(--primary-font);
    font-size: clamp(40px, 4vw, 80px);
    font-weight: 300;
    color: var(--color-blue-soft);
    letter-spacing: -5%;
    line-height: clamp(46px, 4vw, 70px);
    margin-bottom: 3rem;
}

.insights__subtitle {
    font-size: 20px;
    font-weight: 400;
    line-height: 30px;
    color: #364153;
    margin: 0;
}

.insights__grid {
    display: grid;
    grid-template-columns: 2.1fr 1fr;
    gap: 8rem;
    margin-bottom: 3rem;
}

.insights__featured {
    margin: 0;
}

.insights__featured-link {
    display: block;
    color: var(--color-blue-soft);
    text-decoration: none;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
}

.insights__featured-link:hover .insights__cta-btn {
    opacity: 0.9;
}

.insights__featured-media {
    overflow: hidden;
    border-radius: 8px;
    margin-bottom: 3rem;
    width: 100%;
}

.insights__featured-img {
    width: 100%;
    height: auto;
    object-fit: cover;
    display: block;
    transition: transform var(--transition);
}

.insights__featured-link:hover .insights__featured-img {
    transform: scale(1.02);
}

.insights__featured-link:hover .insights__featured-title {
    color: var(--color-gold);
}

.insights__date {
    display: block;
    font-size: 16px;
    font-weight: 400;
    line-height: 30px;
    color: var(--color-blue-soft);
    margin-bottom: 0.75rem;
}

.insights__featured-title {
    font-family: var(--primary-font);
    font-size: clamp(34px, 4vw, 36px);
    font-weight: 600;
    color: var(--color-blue-soft);
    line-height: 36px;
    margin-bottom: 2rem;
}

.insights__featured-excerpt {
    font-size: clamp(20px, 4vw, 26px);
    line-height: clamp(34px, 4vw, 36px);
    color: var(--color-blue-soft);
    margin-bottom: 3rem;
}

.insights__read-more-btn {
    border: 2px solid var(--color-gold);
    color: var(--color-gold);
}

.insights__list {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.insights__list.swiper {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    justify-content: space-between;
}

.insights__list.swiper .swiper-wrapper {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding-bottom: 4rem;
}

.insights__item.swiper-slide {
    width: fit-content !important;
}

.insights__item {
    padding-block: 3rem;
    padding-right: 3rem;
    margin: 0;
    height: auto;
    border-bottom: 1px solid #2733471a;
}

.insights__item:first-child {
    padding-top: 0;
}

.insights__item-title {
    font-family: var(--primary-font);
    font-size: 24px;
    font-weight: 600;
    line-height: 32px;
    letter-spacing: -3%;
    margin-bottom: 0.5rem;
    color: var(--color-blue-soft);
}

.insights__item-title a {
    color: var(--color-blue-soft);
    text-decoration: none;
}

.insights__item-title a:hover {
    color: var(--color-gold);
}

.insights__item-excerpt {
    font-size: 2rem;
    line-height: 1.5;
    color: var(--color-blue-soft);
    margin-bottom: 2rem;
}

.insights__item-link {
    font-size: 14px;
    font-weight: 700;
    line-height: 100%;
    letter-spacing: 2px;
    color: var(--color-gold);
}

.insights__item-link:hover {
    text-decoration: underline;
}

.insights__read-all-btn {
    margin-top: 0;
}

.insights__list-wrapper {
    height: 100%;
    display: flex;
    flex-direction: column;
}



.insights__slider-controls {
    display: none;
}

.insights__slider-controls .swiper-scrollbar {
    flex: 1;
    max-width: 80rem;
    position: relative;
    height: 2px;
    background-color: rgba(0, 0, 0, 0.1);
    border-radius: 2px;
}

.insights__slider-controls .swiper-button-prev,
.insights__slider-controls .swiper-button-next {
    width: 3.6rem;
    height: 3.6rem;
    margin-top: 0;
    position: relative;
    left: 0;
    right: 0;
    top: 0;
    border-radius: 999px;
    border: 1px solid rgba(0, 0, 0, 0.16);
    background-color: var(--color-white);
    color: #1a1c1b;
    transition: border-color 0.2s;
}

.insights__slider-controls .swiper-button-prev:hover,
.insights__slider-controls .swiper-button-next:hover {
    border-color: rgba(0, 0, 0, 0.4);
}

.insights__slider-controls .swiper-button-prev::after,
.insights__slider-controls .swiper-button-next::after {
    font-size: 1.2rem;
}

.insights__slider-controls .swiper-scrollbar-drag {
    height: 100%;
    background-color: #1a1c1b;
    border-radius: 2px;
    cursor: grab;
}

.insights__slider-controls .swiper-scrollbar-drag:active {
    cursor: grabbing;
}

@media (max-width: 1250px) {
    .insights__grid {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 1024px) {
    .insights__item.swiper-slide {
        width: 100% !important;
    }

    .insights__inner {
        padding-top: 8rem;
    }

    .insights__grid {
        grid-template-columns: 100%;
        gap: 0;
    }

    .insights__featured {
        margin: 0;
        padding-bottom: 5rem;
        margin-bottom: 5rem;
        border-bottom: 1px solid #0000002a;
    }

    .insights {
        padding-block: 4rem 5rem;
    }

    .insights__read-all-btn {
        margin-top: 4rem;
    }

    .insights__list.swiper {
        display: block;
        overflow: hidden;
        width: 100%;
        padding-top: 0;
    }

    .insights__list.swiper .swiper-wrapper {
        display: flex;
        flex-direction: row;
    }

    .insights__item {
        height: auto;
        width: 100%;
        flex-shrink: 0;
        border: none;
        padding: 0;
        padding-bottom: 2rem;
    }

    .insights__item:last-child {
        padding-bottom: 2rem;
    }

    .insights__slider-controls {
        display: grid;
        grid-template-columns: 1fr 1fr;
        justify-items: center;
        align-items: center;
        margin-top: 0;
        gap: 2.4rem;
    }

    .insights__slider-controls .swiper-scrollbar {
        max-width: 100%;
        grid-column: span 2;
    }

    .insights__slider-controls .swiper-button-next {
        margin-right: auto;
    }

    .insights__slider-controls .swiper-button-prev {
        margin-left: auto;
    }

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

    .insights__item-excerpt {
        margin-bottom: 2rem;
    }
}

/* --- components/main-menu/main-menu.css --- */
.main-menu {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1000;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

.main-menu.is-open {
    opacity: 1;
    visibility: visible;
}

.main-menu__overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.8);
    backdrop-filter: blur(4px);
}

.main-menu__panel {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    background-color: var(--color-blue-dark);
    color: var(--color-white);
    overflow-y: auto;
    transform: translateY(-100%);
    transition: transform 0.3s ease;
    max-height: 100vh;
}

.main-menu.is-open .main-menu__panel {
    transform: translateY(0);
}

.main-menu__close {
    position: absolute;
    top: 3rem;
    right: 3rem;
    width: 7.2rem;
    height: 7.2rem;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, 0.2);
    background: transparent;
    color: var(--color-white);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10;
    transition: all 0.3s ease;
    padding: 0;
}

.main-menu__close svg {
    width: 4rem;
    height: 4rem;
}

.main-menu__close:hover {
    background-color: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.4);
}

.main-menu__container {
    max-width: 1400px;
    margin: 0 auto;
    padding: 10rem 3rem 7rem 3rem;
}

.main-menu__nav {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8rem;
    padding-bottom: 4rem;
}

.main-menu__section {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.main-menu__section--accordion {
    display: flex;
    flex-direction: column;
}

.main-menu__heading {
    display: block;
    font-size: clamp(1.8rem, 2vw, 2rem);
    font-weight: 600;
    color: var(--color-white);
    text-decoration: none;
    line-height: 1.4;
    transition: color 0.3s ease;
}

.main-menu__heading:hover {
    color: var(--color-gold);
}

.main-menu__heading--accordion {
    list-style: none;
    cursor: pointer;
    position: relative;
    padding-right: 0;
    pointer-events: none;
}

.main-menu__heading--accordion::-webkit-details-marker,
.main-menu__heading--accordion::marker {
    display: none;
}

.main-menu__heading--accordion::after {
    display: none;
}

.main-menu__section--accordion .main-menu__list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.main-menu__list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.main-menu__link {
    display: block;
    font-size: clamp(16px, 2vw, 18px);
    font-weight: 400;
    color: rgba(255, 255, 255, 0.85);
    text-decoration: none;
    line-height: 1.5;
    transition: color 0.3s ease;
    -webkit-font-smoothing: antialiased;
}

.main-menu__link:hover {
    color: var(--color-gold);
}

.main-menu__contacts {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8rem;
    padding-block: 5rem;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.main-menu-footer {
    padding-top: 5rem;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.main-menu__social {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.main-menu__social-title {
    font-size: 18px;
    font-weight: 600;
    color: var(--color-white);
    margin: 0;
}

.main-menu__social-icons {
    display: flex;
    align-items: center;
    gap: 3rem;
}

.main-menu__social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    text-decoration: none;
    transition: all 0.3s ease;
}

.main-menu__social-link:hover {
    scale: 1.1;
}

.main-menu__contact {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-column: span 3;
    gap: 8rem;
}

.main-menu__contact-item {
    display: flex;
    align-items: center;
    gap: 1.2rem;
    color: var(--color-white);
    text-decoration: none;
    font-size: 1.6rem;
    transition: color 0.3s ease;
    flex-wrap: wrap;
}

.main-menu__contact-item--phone {
    grid-column: span 2;
}

.main-menu__contact-item:hover {
    color: var(--color-gold);
}

.main-menu__contact-item img {
    flex-shrink: 0;
    width: 2rem;
    height: 2rem;
    object-fit: contain;
}

.main-menu__social-link img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.main-menu__phone {
    display: block;
    font-weight: 700;
    font-size: 16px;
    color: var(--color-white);
    text-decoration: none;
    line-height: 1.2;
    margin-bottom: 0.4rem;
}

.main-menu__phone:hover {
    color: var(--color-gold);
}

.main-menu__phone-note {
    display: block;
    font-size: 14px;
    color: var(--color-white);
    font-weight: 400;
    -webkit-font-smoothing: antialiased;
}


.main-menu__legal {
    display: flex;
    flex-direction: row;
    gap: 5rem;
    align-items: center;
    justify-content: center;
}

.main-menu__legal-link {
    font-size: 1.2rem;
    color: rgba(255, 255, 255, 0.7);
    text-decoration: none;
    transition: color 0.3s ease;
}

.main-menu__legal-link:hover {
    color: var(--color-gold);
}

@media (max-width: 1200px) {
    .main-menu__nav {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 767px) {
    .main-menu__container {
        padding: 12rem 2rem 2rem;
        display: flex;
        flex-direction: column;
    }

    .main-menu__nav {
        grid-template-columns: 1fr;
        gap: 0;
        padding-bottom: 0;
    }

    .main-menu__section {
        padding: 1.6rem 0;
    }

    .main-menu__section {
        padding: 0;
        gap: 0;
    }

    .main-menu__section--accordion {
        display: block;
        border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    }

    .main-menu__section--accordion:last-of-type {
        border-bottom: none;
    }

    .main-menu__heading {
        margin-bottom: 0;
        font-size: 1.8rem;
        padding: 2rem 0;
        border-top: 1px solid #ffffff1a;
    }

    .main-menu__heading--accordion {
        list-style: none;
        pointer-events: auto;
        cursor: pointer;
        position: relative;
        padding-right: 3rem;
        margin-bottom: 0;
    }

    .main-menu__heading--accordion::-webkit-details-marker,
    .main-menu__heading--accordion::marker {
        display: none;
    }

    .main-menu__heading--accordion::after {
        content: "+";
        position: absolute;
        right: 0;
        top: 50%;
        transform: translateY(-50%);
        width: 2.4rem;
        height: 2.4rem;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 3rem;
        font-weight: 200;
        color: var(--color-gold);
        line-height: 1;
        transition: transform 0.3s ease;
    }

    .main-menu__section--accordion[open] .main-menu__heading--accordion::after {
        content: "−";
        transform: translateY(-50%);
    }

    .main-menu__section--accordion .main-menu__list {
        display: grid;
        grid-template-rows: 0fr;
        overflow: hidden;
        margin-top: 0;
        padding-top: 0;
    }

    .main-menu__section--accordion[open] .main-menu__list {
        grid-template-rows: 1fr;
        margin-top: 0;
        padding-top: 0;
        padding-bottom: 2rem;
    }

    .main-menu__section--accordion .main-menu__list>* {
        min-height: 0;
    }

    .main-menu__close {
        top: 1.5rem;
        right: 1.5rem;
        width: 4rem;
        height: 4rem;
    }

    .main-menu__contact {
        display: flex;
        grid-template-columns: repeat(3, 1fr);
        grid-column: span 3;
        gap: 3rem;
        flex-direction: column;
        padding-bottom: 4rem;
        border-bottom: 1px solid #ffffff1a;
    }

    .main-menu__legal {
        flex-direction: column;
        gap: 2rem;
        align-items: flex-start;
        padding-bottom: 3rem;
    }

    .main-menu__close {
        top: 2rem;
        right: 2rem;
        width: 5.2rem;
        height: 5.2rem;
    }

    .main-menu__contacts {
        display: flex;
        flex-direction: column-reverse;
        gap: 0;
        order: 2;
        padding-block: 3rem;
    }

    .main-menu-footer {
        order: 1;
        padding-top: 3rem;
    }

    .main-menu__contact-item {
        align-items: flex-start;
    }

    .main-menu__social {
        padding-block: 3rem;
    }

    .main-menu__close svg {
        width: 3rem;
        height: 3rem;
    }
}
/* --- components/master-hero/master-hero.css --- */
/* Master Hero – consolidated hero with variants. Spacing via gap only. */
/* Base styles only below. Media queries at the end, largest to smallest. */

.master-hero {
    position: relative;
    width: 100%;
    overflow: hidden;
    background: none;
    padding-block: 0;
    background: linear-gradient(to right, #273347 0%, #5C7EA7 100%);
}

/* In-flow hero: flex column + min-height so % / flex children get a real height (not absolute). */
.master-hero:not(.master-hero--tiny) {
    display: flex;
    flex-direction: column;
    min-height: 80vh;
}

/* Inner slider wrapper: same structure for 1 or N slides */
.master-hero__slider {
    width: 100%;
    position: relative;
    z-index: 3;
}

/* Column flex: wrapper fills slider; horizontal row inside wrapper gets one shared row height. */
.master-hero:not(.master-hero--tiny) .master-hero__slider {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 80vh;
}

.master-hero:not(.master-hero--tiny) .master-hero__slider .swiper-wrapper {
    flex: 1 1 auto;
    min-height: 0;
    align-items: stretch;
    height: auto;
}

/* height:auto + stretch: equal cross-axis size (override Swiper’s height:100% when parent height was indefinite). */
.master-hero:not(.master-hero--tiny) .master-hero__slider .swiper-slide {
    height: auto;
}

.master-hero__slider .swiper-slide {
    position: relative;
    align-self: stretch;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.master-hero__slider .swiper-slide .master-hero__image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    object-position: top;
}

.master-hero:not(.master-hero--has-slider):has(.master-hero__image) .swiper-slide::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 80%;
    height: 100%;
    background: linear-gradient(to right, rgba(0, 0, 0, 0.6) 0%, rgba(0, 0, 0, 0) 100%);
    pointer-events: none;
    z-index: 2;
    opacity: 0.5;
}

.master-hero:not(.master-hero--has-slider):has(.master-hero__image) .master-hero__content {
    z-index: 3;
}

/* Container controls page width; content is max 850px inside it */
.master-hero .container {
    position: relative;
    z-index: 2;
    height: 100%;
    min-height: 80vh;
}

/* Inside slider: container and content must fit the slide height (not taller than swiper) */
.master-hero__slider .swiper-slide .container {
    min-height: 0;
    height: 100%;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
}

.master-hero__slider .swiper-slide .master-hero__content {
    min-height: 0;
    height: 100%;
}

.master-hero__content {
    position: relative;
    max-width: 1050px;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    text-align: left;
    gap: 4rem;
    padding-top: 29rem;
    padding-bottom: 15rem;
    min-height: 80vh;
}

/* Slim: content at most 800px */
.master-hero--slim .master-hero__content {
    max-width: 800px;
}

/* Centered: content centered on the screen */
.master-hero--centered .master-hero__content {
    margin-inline: auto;
    align-items: center;
    text-align: center;
}

.master-hero--centered .master-hero__actions {
    justify-content: center;
}

.master-hero.master-hero--centered:has(.master-hero__image) .swiper-slide::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.6);
    pointer-events: none;
    z-index: 2;
}

.master-hero.master-hero--centered:has(.master-hero__image) .master-hero__content {
    z-index: 3;
}

/* Tiny: no min-height, fits content; no hero image */
.master-hero--tiny {
    min-height: 0;
    height: auto;
}

/* When no image (tiny): slider must be in flow so content shows and section has height */
.master-hero--tiny .master-hero__slider {
    position: relative;
    height: auto;
    min-height: 0;
}

.master-hero--tiny .master-hero__slider .swiper-wrapper,
.master-hero--tiny .master-hero__slider .swiper-slide {
    height: auto;
}

.master-hero--tiny .master-hero__slider .swiper-slide {
    display: block;
}

.master-hero--tiny .container {
    height: auto;
    min-height: 0;
}

.master-hero--tiny .master-hero__content {
    min-height: 0;
    height: auto;
    padding-top: 20rem;
    padding-bottom: 10rem;
    justify-content: flex-start;
}

.master-hero--tiny .master-hero__slider .swiper-slide .master-hero__content {
    height: auto;
}

.master-hero--tiny .master-hero__slider .swiper-slide .container {
    height: auto;
    flex: none;
    display: block;
}

.master-hero--small-container .master-hero__content {
    padding-top: 32rem;
    padding-bottom: 10rem;
    padding-left: 0;
    padding-right: 0;
    width: 100%;
    max-width: 850px;
}

/* When JS inits slider (>1 slide), we only toggle pagination visibility via --has-slider.
   Padding-bottom is already reserved in the base styles to avoid layout jumps on load. */

/* Pagination: hidden when single slide; hero-slider style when multiple (JS adds --has-slider) */
.master-hero__slider .swiper-pagination {
    display: none;
    position: absolute;
    bottom: 50px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 10;
    justify-content: center;
    align-items: center;
    gap: 3rem;
}

.master-hero--has-slider:has(.master-hero__image) .master-hero__slider .swiper-slide::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    width: 100%;
    background: linear-gradient(0deg, #243141 0%, rgba(36, 49, 65, 0) 87.03%);
    height: 350px;
    pointer-events: none;
    z-index: 2;
}

.master-hero--has-slider:has(.master-hero__image) .master-hero__slider .container {
    z-index: 3;
}

.master-hero--has-slider:has(.master-hero__image) .master-hero__slider::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    background: linear-gradient(180deg, #00000050 0%, rgba(0, 0, 0, 0) 91.72%);
    height: 350px;
    pointer-events: none;
    z-index: 2;
}

.master-hero--has-slider:has(.master-hero__image) .swiper-slide::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 75%;
    background: linear-gradient(270deg, #000000 0%, rgba(0, 0, 0, 0) 91.72%);
    z-index: 1;
    pointer-events: none;
    opacity: 0.5;
}

.master-hero--has-slider:has(.master-hero__image) .swiper-wrapper .master-hero__content {
    position: relative;
    z-index: 3;
}

.master-hero--has-slider .master-hero__slider .swiper-pagination {
    display: flex;
}

.master-hero__slider .swiper-pagination .hero-slider__bullet {
    width: 1.2rem;
    height: 1.2rem;
    border-radius: 50%;
    background-color: var(--color-white);
    cursor: pointer;
    transition: all 0.3s ease;
    border: 2px solid var(--color-white);
}

.master-hero__slider .swiper-pagination .hero-slider__bullet:hover {
    background-color: rgba(255, 255, 255, 0.7);
    transform: scale(1.1);
}

.master-hero__slider .swiper-pagination .hero-slider__bullet--active {
    background-color: #ffffff;
    width: 1.4rem;
    height: 1.4rem;
    outline: 1px solid white;
    outline-offset: 0.8rem;
    margin-inline: 0.8rem;
}

/* Dev/demo: 50px red band below hero */
.master-hero__spacer {
    height: 50px;
    background: red;
}

.master-hero__title {
    font-weight: 300;
    font-size: clamp(30px, 3.9vw, 56px);
    line-height: clamp(36px, 4.3vw, 62px);
    text-wrap: balance;
    letter-spacing: -2px;
    text-transform: uppercase;
    color: var(--color-white);
    -webkit-font-smoothing: antialiased;
    width: 100%;
}

.master-hero__description {
    font-weight: 400;
    font-size: clamp(18px, 1.8vw, 26px);
    line-height: clamp(26px, 2.6vw, 38px);
    color: var(--color-white);
    -webkit-font-smoothing: antialiased;
    width: 100%;
}

.master-hero__checklist ul {
    display: flex;
    flex-direction: row;
    gap: 2rem;
    margin: 0;
    list-style-position: inside;
    align-items: center;
    flex-wrap: wrap;
    justify-content: center;
}

.master-hero__checklist li {
    color: #ffffff;
    font-size: 12px;
    font-weight: 400;
    letter-spacing: 0;
    list-style: none;
    position: relative;
    padding-left: 3.6rem;
    min-height: 30px;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
}

.master-hero__checklist li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    width: 3rem;
    height: 3rem;
    background: url('../../assets/images/icons/check-step.svg') no-repeat center center;
    background-size: contain;
    transform: translateY(-50%);
}

.master-hero__actions {
    display: flex;
    gap: 3rem;
    flex-wrap: wrap;
    justify-content: left;
}

/* ========== Media queries: largest to smallest ========== */

@media (max-width: 1024px) {
    .master-hero:not(.master-hero--has-slider):has(.master-hero__image) .swiper-slide::before {
        width: 100%;
        opacity: 1;
        background: rgba(0, 0, 0, 0.6);
    }

    .master-hero__checklist li::before {
        width: 2rem;
        height: 2rem
    }

    .master-hero__checklist li {
        padding-left: 2.6rem;
    }

    .master-hero__slider .swiper-pagination {
        bottom: 30px;
    }

    .master-hero {
        min-height: 80vh;
    }

    .master-hero--tiny {
        min-height: 0;
    }

    .master-hero__content {
        max-width: min(850px, 100%);
        margin-inline: auto;
        padding-bottom: 10rem;
        padding-top: 16rem;
        gap: 2rem;
        text-align: center;
        min-height: 80vh;
    }

    .master-hero--tiny .master-hero__content {
        min-height: 0;
        padding-top: 200px;
        padding-bottom: 8rem;
    }

    .master-hero::before {
        width: 100%;
        height: 70%;
        background: linear-gradient(to bottom, rgba(0, 0, 0, 0.6) 0%, rgba(0, 0, 0, 0) 100%);
    }

    .master-hero__title {
        text-align: center;
    }

    .master-hero__checklist {
        display: flex;
        flex-direction: row;
        justify-content: center;
        align-items: center;
        text-align: center;
        width: 100%;
    }

    .master-hero__actions {
        flex-direction: column;
        align-items: stretch;
        gap: 1.2rem;
        width: 100%;
        max-width: 32rem;
        margin-inline: auto;
        text-align: center;
    }

    .master-hero__actions .button {
        text-align: center;
    }
}

@media (max-width: 767px) {
    .master-hero--has-slider:has(.master-hero__image) .swiper-wrapper .master-hero__content {
        position: relative;
        z-index: 3;
        padding-inline: 2rem;
    }
    
    .master-hero__slider .swiper-pagination {
        bottom: 35px;
    }

    .master-hero--tiny .master-hero__content {
        padding-top: 150px;
    }

    .master-hero__slider .swiper-pagination .hero-slider__bullet {
        width: 1rem;
        height: 1rem;
    }

    .master-hero__slider .swiper-pagination .hero-slider__bullet--active {
        width: 1.4rem;
        height: 1.4rem;
        outline-offset: 0.8rem;
        margin-inline: 0.8rem;
    }

    .master-hero__description {
        margin-top: -.5rem;
        margin-bottom: 2.5rem;
        font-size: 24px;
    }

    .master-hero__actions {
        /* max-width: 20rem; */
    }

    .master-hero__actions .button.button--tertiary {
        font-size: 1.2rem;
        line-height: 1.1;
    }
}


/* --- components/mobile-app/mobile-app.css --- */
.app-mysgf {
    position: relative;
    padding-block: 24rem;
    margin-top: -15.5rem;
    margin-bottom: -29.5rem;
    overflow: hidden;
}

.app-mysgf__inner {
    position: relative;
    z-index: 1;
    max-width: 1200px;
    margin-inline: auto;
    padding-inline: 2rem;
    display: flex;
    justify-content: flex-end;
}

.app-mysgf__hand {
    position: absolute;
    top: 0;
    left: -40px;
    width: auto;
    height: 100%;
    /*object-fit: cover;*/
    object-position: center;
}

.app-mysgf__hand--desktop {
    display: none;
}

.app-mysgf__hand--mobile {
    display: block;
}

.app-mysgf__hand--desktop {
    display: block;
}

.app-mysgf__hand--mobile {
    display: none;
}

.app-mysgf__content {
    position: relative;
    z-index: 1;
    max-width: 480px;
    padding-block: 3rem;
}

.app-mysgf__title {
    margin-bottom: 3rem;
    max-height: 130px;
    width: 100%;
    object-fit: contain;
    object-position: left;
}

.app-mysgf__lead {
    font-size: clamp(22px, 5.5vw, 38px);
    font-weight: 500;
    line-height: clamp(26px, 5.5vw, 42px);
    color: #FFFFFF;
    margin-bottom: 2rem;
}

.app-mysgf__text {
    font-size: clamp(18px, 5.5vw, 24px);
    font-weight: 400;
    line-height: 1.4;
    color: #FFFFFF;
    margin-bottom: 5rem;
}

.app-mysgf__cta {
    margin-bottom: 2rem;
}

.app-mysgf__stores {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 1rem;
    margin-top: clamp(4rem, 3vw, 8rem);
}

.app-mysgf__stores img {
    max-height: 50px;
    height: 100%;
    width: auto;
}

@media (max-width: 1024px) {
    .app-mysgf {
        margin-bottom: -18.5rem;
    }
}

@media (max-width: 1300px) {
    .app-mysgf__hand--desktop {
        display: none;
    }

    .app-mysgf__hand--mobile {
        display: block;
        object-fit: cover;
        width: 100%;
        /* Had to remove object-fit: contain to avoid the image being cut off */
        /* object-fit: contain; */
    }

    .app-mysgf::after {
        content: "";
        position: absolute;
        bottom: 0;
        left: 0;
        width: 100%;
        height: 40%;
        background: linear-gradient(to bottom, transparent, var(--color-blue));
        opacity: 0.9;
    }

    .app-mysgf {
        padding-block: 0;
        margin: 0;
        min-height: 100dvh;
        height: 100dvh;
    }

    .app-mysgf__inner {
        justify-content: flex-start;
        display: flex;
        flex-direction: column;
        min-height: 100%;
        height: 100%;
    }

    .app-mysgf__content {
        display: flex;
        flex-direction: column;
        height: 100%;
        min-width: 100%;
        align-items: flex-start;
        gap: 2rem;
    }

    .app-mysgf__lead,
    .app-mysgf__text {
        margin-bottom: 0;
        max-width: 90%;
        line-height: 1.2;
    }

    .app-mysgf__lead {
        font-size: 22px
    }

    .app-mysgf__text {
        font-size: 18px;
    }

    .app-mysgf__stores {
        margin-top: auto;
        justify-content: center;
        flex-direction: column;
        min-width: 100%;
        align-items: center;
    }
    
    .app-mysgf__stores img {
        width: 180px;
        height: auto;
        max-height: 100%;
        align-items: center;
        object-fit: contain;
    }

    .app-mysgf__title {
        max-height: 90px;
        margin-bottom: 0;
    }
}

@media (min-width: 2244px) { 
    .app-mysgf__hand {
        width: 100%;
    }
}

/* --- components/oportunities/oportunities.css --- */
.oportunities {
    padding-block: 9rem;
}

.oportunities__header {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    margin-bottom: 6rem;
}

.oportunities__title {
    font-size: clamp(30px, 4.8vw, 80px);
    font-weight: 300;
    line-height: clamp(30px, 4.8vw, 90px);
    letter-spacing: -2px;
    text-transform: uppercase;
    color: var(--color-blue-soft);
    margin-bottom: 2rem;
}

.oportunities__subtitle {
    font-size: clamp(16px, 2vw, 24px);
    font-weight: 400;
    color: var(--color-blue-soft);
    line-height: clamp(24px, 2vw, 36px);
    letter-spacing: 0px;
}

.oportunities__list {
    list-style: none;
    margin: 0;
    padding: 0;
    border-top: 1px solid #2733471A;
}

.oportunities__item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 4rem;
    padding-block: 4rem;
    border-bottom: 1px solid #2733471A;
}

.oportunities__info {
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
    min-width: 0;
}

.oportunities__job-title {
    font-size: clamp(16px, 2vw, 22px);
    font-weight: 700;
    color: var(--color-blue-soft);
    line-height: 24px;
    letter-spacing: 0;
    margin: 0;
}

.oportunities__location {
    display: block;
    padding-left: calc(1.4rem + 0.6rem);
    background-image: url("../../assets/images/icons/location.svg");
    background-repeat: no-repeat;
    background-position: left center;
    background-size: 1.4rem 1.4rem;
    font-size: clamp(12px, 1.3vw, 16px);
    font-weight: 400;
    color: var(--color-blue-soft);
    line-height: 24px;
    letter-spacing: 0px;
    margin: 0;
}

.oportunities__description {
    font-size: clamp(12px, 1.3vw, 14px);
    font-weight: 400;
    color: var(--color-blue-soft);
    line-height: 1.5;
    margin: 0;
}

.oportunities__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    padding: 1.4rem 2.4rem;
    background-color: var(--color-gold);
    color: var(--color-white);
    font-size: clamp(10px, 1.1vw, 12px);
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    text-decoration: none;
    border-radius: 4px;
    transition: background-color 0.2s ease, opacity 0.2s ease;
    white-space: nowrap;
    border: 0;
    cursor: pointer;
}

.oportunities__cta:hover {
    opacity: 0.85;
}

.oportunities__form {
    max-width: 600px;
    margin: 4rem auto 0;
}

/* --- Media queries --- */

@media (max-width: 980px) {
    .oportunities {
        padding-block: 5rem;
    }

    .oportunities__header {
        margin-bottom: 4rem;
    }

    .oportunities__item {
        flex-direction: column;
        align-items: flex-start;
        gap: 2.4rem;
        padding-block: 3rem;
    }

    .oportunities__cta {
        align-self: flex-start;
    }
}

@media (max-width: 600px) {
    .oportunities__subtitle {
        max-width: 100%;
    }
}

/* --- components/pension-funds/pension-funds.css --- */
.fundos-pensoes {
    margin-bottom: 30rem;
}

.fundos-pensoes__inner {
    padding-top: 200px;
    max-width: 1600px;
    margin-inline: auto;
    padding-inline: 2rem;
}

.fundos-pensoes__title {
    font-family: var(--primary-font);
    font-size: clamp(40px, 4vw, 80px);
    line-height: clamp(46px, 4vw, 70px);
    font-weight: 300;
    color: var(--color-blue-soft);
    text-align: center;
    text-transform: uppercase;
    letter-spacing: -5%;
    margin-bottom: 9rem;
}

.fundos-pensoes__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 9rem;
    align-items: center;
}

.fundos-pensoes__media {
    order: 1;
}

.fundos-pensoes__img {
    width: 100%;
    height: auto;
    border-radius: 20px;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.08);
}

.fundos-pensoes__content {
    order: 2;
}

.fundos-pensoes__lead {
    font-family: var(--primary-font);
    font-size: clamp(20px, 4vw, 32px);
    font-weight: 400;
    line-height: clamp(34px, 4vw, 48px);
    letter-spacing: -1px;
    color: var(--color-blue-soft);
    margin-bottom: 5rem;
}

.fundos-pensoes__lead strong {
    font-weight: 700;
}

.fundos-pensoes__subhead {
    font-family: var(--primary-font);
    font-size: clamp(22px, 4vw, 34px);
    line-height: clamp(34px, 4vw, 36px);
    font-weight: 400;
    color: var(--color-blue-soft);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 1rem;
    margin-top: 0.5rem;
}

.fundos-pensoes__text {
    font-family: var(--primary-font);
    font-weight: 400;
    font-size: clamp(20px, 4vw, 24px);
    line-height: clamp(34px, 4vw, 36px);
    letter-spacing: -1px;
    margin-bottom: 2.5rem;
    color: var(--color-blue-soft);
}

.fundos-pensoes__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 2rem;
}

@media (max-width: 1024px) {
    .fundos-pensoes__grid {
        grid-template-columns: 1fr;
        gap: 3rem;
    }

    .fundos-pensoes__inner {
        padding-top: 8rem;
    }

    .fundos-pensoes__subhead {
        margin-top: 3rem;
    }
}

@media (max-width: 767px) {
    .fundos-pensoes {
        margin-bottom: 8rem;
    }

    .fundos-pensoes__inner {
        padding-top: 5rem;
    }

    .fundos-pensoes__title {
        margin-bottom: 3rem;
    }

    .fundos-pensoes__lead {
        margin-bottom: 2.5rem;
    }

    .fundos-pensoes__actions .button {
        width: 100%;
    }
}

/* --- components/ppr-detail/ppr-detail.css --- */
.ppr-specs {
    padding-block: 8rem;
    /*background: linear-gradient(45deg, #273347 0%, #5C7EA7 100%);*/
    background-color: #21BCBB;
}

.ppr-specs__inner {
    display: flex;
    flex-direction: column;
    gap: 4rem;
}

.ppr-specs__header {
    text-align: center;
    max-width: 60rem;
    margin-inline: auto;
}

.ppr-specs__title {
    font-size: clamp(2.4rem, 3.2vw, 3.6rem);
    line-height: 1.1;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--color-blue-soft);
}

.ppr-specs__subtitle {
    margin-top: 1.6rem;
    color: var(--color-blue);
}

.ppr-specs__grid {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 2rem;
    justify-content: space-between;
    align-items: center;
}

.ppr-specs__item {
    border-left: 1px solid #fff;
    padding-left: 2.5rem;
    padding-block: 1rem;
    color: #fff;
    display: flex;
    flex-direction: column;
    gap: 2rem;
    justify-content: space-between;
    max-width: 32rem;
}

.ppr-specs__item-title {
    font-size: 18px;
    font-weight: 400;
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: -0.5px;
}

.ppr-specs__item-percentage {
    font-size: clamp(42px, 3vw, 60px);
    font-weight: 500;
    line-height: 60px;
}

.ppr-specs__item-text {
    font-size: clamp(22px, 2.5vw, 24px);
    line-height: 1;
    font-weight: 400;
    letter-spacing: 0;
}

.ppr-about {
    padding-top: 12rem;
    padding-bottom: 5rem;
}

.ppr-about__inner {
    display: grid;
    grid-template-columns: 1.7fr 1fr;
    gap: 10rem;
    align-items: center;
    color: var(--color-blue);
    align-items: start;
}

.ppr-about__title,
.ppr-profitability__title,
.ppr-tables__title {
    font-size: clamp(32px, 5vw, 8rem);
    font-weight: 300;
    line-height: clamp(36px, 5vw, 90px);
    letter-spacing: -2px;
    text-transform: uppercase;
    margin-bottom: 1rem;
    -webkit-font-smoothing: antialiased;
    margin-bottom: 6rem;
}

.ppr-about__text,
.ppr-about__metrics-title {
    margin-bottom: 5rem;
    font-size: clamp(24px, 4vw, 30px);
    font-weight: 400;
    line-height: clamp(30px, 4vw, 46px);
    letter-spacing: -1px;
    -webkit-font-smoothing: antialiased;
}

.ppr-about__text p:last-child,
.ppr-about__text--small:last-child {
    margin-bottom: 0;
}

.ppr-about__text--small p {
    margin-bottom: 3rem;
    font-size: clamp(18px, 4vw, 24px);
    font-weight: 400;
    line-height: clamp(24px, 4vw, 36px);
}

.ppr-about__column--metrics {
    background: var(--color-green);
    padding: 8rem 6rem;
    padding-top: 7rem;
    border-radius: 20px;
    color: #fff;
}

.ppr-about__metrics-title {
    font-weight: 700;
    color: #fff;
    margin-bottom: 4rem;
}

.ppr-about__progress-list {
    display: flex;
    flex-direction: column;
    gap: 3rem;
    margin-bottom: 5rem;
}

.ppr-about__progress-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1rem;
}

.ppr-about__progress-label,
.ppr-about__progress-value {
    font-size: clamp(16px, 4vw, 18px);
    font-weight: 400;
    line-height: clamp(20px, 4vw, 24px);
    letter-spacing: 0;
    color: #fff;
}

.ppr-about__progress-value {
    font-weight: 700;
}

.ppr-about__progress-bar {
    position: relative;
    width: 100%;
    height: 1rem;
    border-radius: 999px;
    background: #ffffff2a;
    overflow: hidden;
}

.ppr-about__progress-fill {
    position: absolute;
    inset: 0;
    width: 0;
    border-radius: inherit;
    background: #ffffff;
    transition: width 0.6s ease-out;
}

.ppr-about__cta {
    margin-top: 0.4rem;
}

.ppr-profitability {
    padding-block: 7rem 2rem;
}

.ppr-profitability__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10rem;
    align-items: start;
}

.ppr-profitability__column>.grid-icon-with-text {
    margin-bottom: 2.4rem;
}

.ppr-profitability__chart-wrapper {
    overflow: hidden;
}

.ppr-profitability__title {
    margin-bottom: 3rem;
}

.ppr-profitability__image {
    display: block;
    width: 100%;
    height: auto;
}

.ppr-profitability__chart-caption {
    margin-top: 1.2rem;
    font-size: 1.2rem;
    color: #546083;
}

.ppr-tables {
    padding-block: 7rem;
}

.ppr-tables__inner {
    max-width: 1500px;
    margin-inline: auto;
    padding-inline: var(--container-padding);
}

.ppr-tables__header {
    text-align: center;
    margin-bottom: 4rem;
}

.ppr-tables__columns {
    display: grid;
    grid-template-columns: 0.9fr 1fr;
    gap: 8rem;
    align-items: flex-start;
}

.ppr-tables__column-inner {
    background-color: #21BCBB;
    /*background: var(--color-blue-soft);*/
    border-radius: 16px;
    padding: 4rem 4.5rem;

        h3 {
            border-bottom: none;
        }
}

.ppr-tables__column-title {
    font-size: 1.8rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--color-blue-soft);
    margin-bottom: 2rem;
}

.ppr-tables__table-block+.ppr-tables__table-block {
    margin-top: 6rem;
}

.ppr-tables__column.ppr-tables__column--left {
    padding-block: 4rem;
}

.ppr-tables__table-title,
.ppr-tables__column-title {
    font-size: clamp(24px, 4vw, 30px);
    font-weight: 700;
    line-height: 1.2;
    text-transform: uppercase;
    color: var(--color-blue);
    padding-bottom: 3.5rem;
    letter-spacing: -1px;
    border-bottom: 1px solid var(--color-blue);
}

.ppr-tables__column-title {
    color: #ffffff;
    padding-bottom: 3rem;
    margin-bottom: 0;
}

.ppr-tables__table-title--small {
    font-size: 16px;
    line-height: 1.2;
    text-transform: uppercase;
    color: var(--color-blue);
    padding-bottom: 2rem;
    text-transform: none;
}

.ppr-table {
    width: 100%;
    border-radius: 14px;
}

.ppr-table tr {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    border-bottom: 1px solid #2733471A;
}

.ppr-table tr:last-child {
    border-bottom: none;
}

.ppr-table th,
.ppr-table td {
    padding-block: 2rem;
    font-size: 16px;
    font-weight: 400;
    line-height: 24px;
    letter-spacing: 0;
    color: var(--color-blue);
}

.ppr-table th {
    text-align: left;
    font-weight: 500;
    color: var(--color-blue);
    width: auto
}

.ppr-table td {
    text-align: right;
    font-weight: 700;
    width: auto;
}

.ppr-table--mini {
    box-shadow: none;
    border-radius: 1rem;
    color: #ffffff;
    padding-top: 1.5rem;
    padding-bottom: 3.5rem;
}

/* Standalone icon row: used when there is no nested .ppr-table.ppr-table--mini */
.ppr-tables__icon-row--standalone .ppr-tables__icon-text-block {
    background: none;
    align-items: start;
}

.ppr-table--mini tr {
    margin-left: 8rem;
    margin-right: 2rem;
    border-bottom: 1px solid #ffffff1a;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    column-gap: 2.4rem;
    align-items: start;
}

.ppr-table--mini th,
.ppr-table--mini td {
    color: #ffffff;
    font-size: 14px;
    font-weight: 400;
    line-height: 20px;
    letter-spacing: 0;
    padding-block: 1rem;
}

.ppr-table--mini td {
    font-weight: bold;
    white-space: nowrap;
}

.ppr-tables__icon-row {
    display: grid;
    grid-template-columns: 1fr;
    align-items: start;
    border: 1px solid #ffffff2a;
    border-radius: 14px;
}

.ppr-tables__icon-row+.ppr-tables__icon-row {
    margin-top: 2rem;
}

.ppr-tables__icon-text-block {
    display: flex;
    gap: 2rem;
    align-items: center;
    padding: 2rem 3rem;
    background: #D9D9D92A;
    border-radius: 14px 14px 0 0;
}

.ppr-tables__icon img {
    width: 3rem;
    height: 3rem;
    display: block;
    flex-shrink: 0;
}

.ppr-tables__icon-title {
    font-size: clamp(18px, 4vw, 20px);
    line-height: 1.2;
    font-weight: 700;
    color: #ffffff;
    margin-bottom: 1rem;
}

.ppr-tables__icon-text {
    font-size: 14px;
    line-height: 1.2;
    font-weight: 400;
    color: #ffffff;
}

.ppr-tables__acceptance {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 3rem;
    max-width: 80%;
    margin: auto;
    margin-top: 2.5rem;
}

.ppr-tables__acceptance-icon img {
    width: 3rem;
    height: 3rem;
}

.ppr-tables__acceptance-text {
    font-size: 12px;
    line-height: 18px;
    font-weight: 400;
}

.ppr-documentation {
    padding-block: 7rem 0;
}

.ppr-documentation__header {
    text-align: center;
    margin-bottom: 3rem;
}

.ppr-documentation__title {
    font-size: clamp(2.4rem, 3.2vw, 3.4rem);
    text-transform: uppercase;
    letter-spacing: -0.04em;
    color: var(--color-blue-soft);
}

.ppr-documentation__subtitle {
    margin-top: 1.4rem;
    color: var(--color-blue);
}

.ppr-documentation__tab {
    width: 100%;
    border: none;
    border-radius: 1.6rem;
    padding: 8rem 7rem;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    gap: 1.2rem;
    cursor: pointer;
    background: none;
}

.ppr-documentation__tab:hover .ppr-documentation__tab-icon {
    border-color: var(--color-gold);
}

.ppr-documentation__tab-inner {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 3rem;
    text-align: left;
}

.ppr-documentation__tab-title {
    font-size: clamp(24px, 4vw, 80px);
    font-weight: 300;
    line-height: clamp(36px, 4vw, 90px);
    letter-spacing: -2px;
    color: var(--color-blue-soft);
    text-transform: uppercase;
}

.ppr-documentation__tab-subtitle {
    font-size: clamp(20px, 2.5vw, 32px);
    font-weight: 400;
    line-height: clamp(28px, 4vw, 48px);
    letter-spacing: -1px;
    color: var(--color-blue);
}

.ppr-documentation__tab-icon {
    width: 11rem;
    height: 11rem;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.6);
    background-image: url("../../assets/images/icons/arrow-down-blue.svg");
    background-size: 25%;
    background-repeat: no-repeat;
    background-position: center;
    flex-shrink: 0;
    border: 1px solid transparent;
    transition: transform 0.35s ease, border-color 0.25s ease;
}

.ppr-documentation__tab[aria-expanded="true"] .ppr-documentation__tab-icon {
    transform: rotate(180deg);
    background-image: url("../../assets/images/icons/arrow-gold.svg");
}

.ppr-documentation__accordion {
    border-radius: 16px;
    background: #2431410D;
}

.ppr-documentation__panel {
    display: grid;
    grid-template-rows: 1fr;
    overflow: hidden;
    transition: grid-template-rows 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    border-radius: 0 0 16px 16px;
}

.ppr-documentation__panel--collapsed {
    grid-template-rows: 0fr;
}

.ppr-documentation__panel>.ppr-documentation__columns {
    min-height: 0;
    overflow: hidden;
}

.ppr-documentation__columns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20rem;
    max-width: 80%;
    margin: auto;
}

.ppr-documentation__column {
    padding-bottom: 14rem;
    padding-top: 2rem;
}

.ppr-documentation__column-title {
    font-size: clamp(16px, 2vw, 20px);
    font-weight: 700;
    color: var(--color-blue-soft);
    margin-bottom: 4rem;
}

/* Accordion files list (same as accordion component) inside documentation panel */
.ppr-documentation__panel .accordion__files {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
}

.ppr-documentation__panel .accordion__file {
    display: flex;
    align-items: center;
    gap: 1.2rem;
    padding: 1.2rem 0;
    border-bottom: 1px dashed rgba(36, 49, 65, 0.2);
}

.ppr-documentation__panel .accordion__file-link {
    display: flex;
    align-items: center;
    gap: 1.2rem;
    flex: 1;
    min-width: 0;
    margin: -1.2rem 0;
    padding: 1.2rem 0;
    text-decoration: none;
    color: inherit;
    cursor: pointer;
}

.ppr-documentation__panel .accordion__file-link:hover {
    text-decoration: underline;
}

.ppr-documentation__panel .accordion__file-link:hover .accordion__file-download {
    opacity: 1;
    background-color: rgba(36, 49, 65, 0.06);
}

.ppr-documentation__panel .accordion__file:first-child {
    border-top: 1px dashed rgba(36, 49, 65, 0.2);
}

.ppr-documentation__panel .accordion__file-icon {
    flex-shrink: 0;
    width: 2.5rem;
    height: 2.5rem;
    background-image: url("../../assets/images/icons/PDF.svg");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

.ppr-documentation__panel .accordion__file-name {
    flex: 1;
    font-size: clamp(14px, 1.5vw, 18px);
    font-weight: 400;
    color: var(--color-blue);
    line-height: 22px;
}

.ppr-documentation__panel .accordion__file-download {
    flex-shrink: 0;
    width: 3rem;
    height: 3rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background-image: url("../../assets/images/icons/download.svg");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 60%;
    border-radius: 4px;
    transition: opacity 0.2s ease, background-color 0.2s ease;
    text-decoration: none;
}

.ppr-documentation__panel .accordion__file-download:hover {
    opacity: 1;
    background-color: rgba(36, 49, 65, 0.06);
}

@media(max-width: 1480px) {
    .ppr-about__column--metrics {
        padding: 4rem 3rem;
    }
}

@media (max-width: 1200px) {
    .ppr-specs__grid {
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
        gap: 5rem;
    }


    .ppr-profitability__inner,
    .ppr-tables__columns {
        grid-template-columns: minmax(0, 1fr);
        gap: 5rem;
    }

    .ppr-profitability__column--chart {
        order: -1;
    }
}

@media (max-width: 1024px) {
    .ppr-specs__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ppr-about__inner {
        grid-template-columns: minmax(0, 1fr);
    }

    .ppr-documentation__tab {
        grid-template-columns: minmax(0, 1fr) auto;
        grid-auto-rows: auto;
    }

    .ppr-documentation__tab-subtitle {
        grid-column: 1 / -1;
    }

    .ppr-documentation__tab-inner {
        gap: 1rem;
    }

    .ppr-documentation__tab-icon {
        width: 4rem;
        height: 4rem;
    }

    .ppr-documentation__columns {
        grid-template-columns: minmax(0, 1fr);
        max-width: 100%;
        width: 100%;
        gap: 0;
    }

    .ppr-documentation__column {
        padding-bottom: 6rem;
        padding-inline: 2rem;
    }

    .ppr-documentation__column-title {
        margin-bottom: 2rem;
    }


}

@media (max-width: 767px) {
    .ppr-about__text {
        font-size: 20px;
    }
    
    .ppr-profitability__inner .grid-icon-with-text {
        padding-bottom: 0;
        margin-bottom: 0;
    }

    .ppr-specs {
        padding-block: 2.5rem;
    }

    .ppr-specs__grid {
        gap: 2rem;
    }

    .ppr-specs__item {
        gap: 0;
    }

    .ppr-specs__item-title {
        font-size: 16px;
    }

    .ppr-specs__item-percentage {
        line-height: 1.2;
        font-size: 32px;
    }

    .ppr-specs__item-text {
        font-size: 16px;
    }

    .ppr-about,
    .ppr-profitability,
    .ppr-tables,
    .ppr-documentation {
        padding-block: 4.5rem;
    }

    .ppr-specs__grid {
        grid-template-columns: minmax(0, 1fr);
    }



}



@media (max-width: 1024px) {


    .ppr-documentation__tab {
        padding: 4rem;
    }

    .ppr-about__inner {
        grid-template-columns: 1fr;
        gap: 5rem;
    }
}

@media (max-width: 767px) {

    .ppr-documentation__tab {
        padding: 2rem;
    }

    .ppr-tables__column-inner {
        padding: 3rem;
    }

    .ppr-tables__acceptance {
        max-width: 90%;
    }
}

/* PPR detail page uses contact block with more vertical spacing */
.ppr-detail .contact {
    padding-block: 18rem;
}

@media (max-width: 600px) {

    .ppr-table--mini tr {
        margin-left: 0;
        margin-right: 0;
    }

    .ppr-tables__icon-text-block {
        padding: 2rem;
    }
}


@media(min-width: 1200px) and (max-width: 1480px) {
    .ppr-specs__item {
        max-width: 21rem;
    }

    .ppr-specs__grid {
        gap: 1rem;
    }
}


/* --- components/ppr-table/ppr-table.css --- */
/* --- components/ppr-table/ppr-table.css (scoped to .ppr-table-section to avoid overriding .ppr-tables .ppr-table) --- */
.ppr-table-section {
    padding-block: 8rem 10rem;
}

.ppr-table-section .ppr-table__title {
    font-size: clamp(3.6rem, 5vw, 6rem);
    font-weight: 300;
    line-height: 1.1;
    letter-spacing: -0.02em;
    color: var(--color-blue-soft);
    text-align: center;
    text-transform: uppercase;
    margin-bottom: 1rem;
}

.ppr-table-section .ppr-table__subtitle {
    font-size: clamp(20px, 4vw, 28px);
    font-weight: 400;
    text-align: center;
    line-height: clamp(32px, 4vw, 48px);
    letter-spacing: -1px;
    margin-bottom: 6rem;
    color: var(--color-blue-soft);
}

.ppr-table-section .ppr-table__wrap {
    border-bottom: 2px solid var(--color-blue-soft);
    overflow-x: visible;
}

.ppr-table-section .ppr-table {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding-bottom: 8px;
}

.ppr-table-section .ppr-table tr {
    display: flex;
    flex-direction: row;
    gap: 8px;
}

.ppr-table-section .ppr-table tbody {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.ppr-table-section .ppr-table tr:last-child td {
    border-bottom: 0;
}

.ppr-table-section .ppr-table th,
.ppr-table-section .ppr-table td {
    display: flex;
    flex-direction: column;
    align-content: center;
    justify-content: center;
    font-size: 20px;
    text-align: center;
    width: 19.5%;
}

.ppr-table-section .ppr-table th {
    padding: 3rem 2rem;
}

.ppr-table-section .ppr-table td {
    padding: 1.8rem 2rem;
}

.ppr-table-section .ppr-table th:first-child,
.ppr-table-section .ppr-table td:first-child {
    text-align: left;
    background: white;
    border-bottom: 1px solid #00000033;
    width: 22%;
}

.ppr-table-section .ppr-table thead th {
    font-weight: 700;
    font-size: clamp(16px, 1.5vw, 22px);
    line-height: clamp(24px, 1.5vw, 32px);
    color: #FFFFFF;
    background: var(--color-green);
    border-radius: 12px 12px 0 0;
}

.ppr-table-section .ppr-table thead th:last-child {
    border-right: none;
}

.ppr-table-section .ppr-table__th--date {
    background: var(--color-blue-soft) !important;
    font-size: clamp(16px, 1.5vw, 20px);
    font-weight: 700;
    letter-spacing: 2px;
    text-align: center !important;
}

.ppr-table-section .ppr-table tbody td:not(:first-child) {
    text-align: center;
    background: var(--color-green-alpha);
}

.ppr-table-section .ppr-table__name {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.ppr-table-section .ppr-table__name strong {
    font-size: clamp(18px, 1.5vw, 24px);
    font-weight: 700;
    color: var(--color-blue-soft);
    line-height: 26px;
    letter-spacing: -1px;
}

.ppr-table-section .ppr-table__name-label {
    font-size: clamp(16px, 1.5vw, 18px);
    font-weight: 700;
    color: var(--color-blue-soft);
    line-height: 26px;
    letter-spacing: -1px;
}

.ppr-table-section .ppr-table__name-label--caps {
    font-size: 1.1rem;
    font-weight: 600;
    color: #6b7a8d;
    letter-spacing: 0.04em;
}

.ppr-table-section .ppr-table__name--solo strong {
    font-size: 1.7rem;
}

.ppr-table-section .ppr-table__footnotes {
    margin-top: 2.4rem;
    font-weight: 400;
    font-size: 16px;
    line-height: 26px;
    letter-spacing: 0;
    color: var(--color-blue-soft);
    padding: 0 2.4rem;
}

/* Responsive */
@media (max-width: 1200px) {
    .ppr-table-section .ppr-table__wrap {
        width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .ppr-table-section .ppr-table {
        width: max-content;
        min-width: 100%;
        max-width: none;
    }

    .ppr-table-section .ppr-table tr {
        flex-wrap: nowrap;
    }

    .ppr-table-section .ppr-table th {
        padding: 2rem;
    }

    .ppr-table-section .ppr-table th,
    .ppr-table-section .ppr-table td {
        width: auto;
        min-width: 20rem;
        box-sizing: border-box;
    }

    .ppr-table-section .ppr-table th:first-child,
    .ppr-table-section .ppr-table td:first-child {
        min-width: 24rem;
        width: auto;
    }
}

@media (max-width: 767px) {
    .ppr-table-section {
        padding-block: 6rem;
    }

    .ppr-table-section .ppr-table__footnotes {
        padding: 0 1.6rem;
    }

    .ppr-table-section .ppr-table {
        width: max-content;
        min-width: 100%;
        max-width: none;
    }

    .ppr-table-section .ppr-table th,
    .ppr-table-section .ppr-table td {
        min-width: auto;
        width: 16rem;
        font-size: 1.8rem;
    }

    .ppr-table-section .ppr-table th:first-child,
    .ppr-table-section .ppr-table td:first-child {
        min-width: 24rem;
    }

    .ppr-table {
        padding-inline: 2rem;
    }

    .ppr-table__wrap {
        width: calc(100% + 40px) !important;
        margin-left: -20px;
    }
}

/* --- components/product-cards-extended/product-cards-extended.css --- */
.product-cards-extended {
    padding-block: 9rem;
}

.product-cards-extended__grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8rem;
    margin-top: 6rem;
}

.product-cards-extended__item {
    display: flex;
    height: auto;
    min-width: 0;
}

.product-extended-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    width: 42rem;
    min-width: 0;
    border-radius: 2rem;
    background-color: var(--color-white);
    box-shadow: 10px 10px 50.3px 0 rgba(0, 0, 0, 0.2);
    overflow: hidden;
    position: relative;
    transition: box-shadow 0.3s ease;
}

/* Whole card is clickable: link wraps image + body */
.product-extended-card__link {
    position: relative;
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    text-decoration: none;
    color: inherit;
}

.product-extended-card__body::after {
    content: "";
    position: absolute;
    right: 2.4rem;
    top: 2.4rem;
    width: 5rem;
    height: 5rem;
    border-radius: 999px;
    border: 1px solid rgba(0, 0, 0, 0.12);
    background-color: var(--color-white);
    background-image: url("data:image/svg+xml,%3Csvg%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3E%3Cpath%20d='M5%2012h14m0%200l-7-7m7%207l-7%207'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 2rem;
    transition: background-color 0.2s ease, border-color 0.2s ease;
}

.product-extended-card__link:hover .product-extended-card__body::after {
    background-color: var(--color-blue);
    border-color: var(--color-blue);
    background-image: url("data:image/svg+xml,%3Csvg%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3E%3Cpath%20d='M5%2012h14m0%200l-7-7m7%207l-7%207'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3E%3C/svg%3E");
}

.product-extended-card:hover:has(.product-extended-card__link) {
    box-shadow: 10px 10px 50.3px 0 rgba(0, 0, 0, 0.5);
}

.product-extended-card:hover:has(.product-extended-card__link) .product-extended-card__image img {
    transform: scale(1.2);
}

.product-extended-card__image {
    position: relative;
    overflow: hidden;
    flex-shrink: 0;
    display: flex;
    align-items: flex-end;
    justify-content: flex-start;
    padding: 2rem;
}

.product-extended-card__image img {
    transition: transform 0.4s ease;
}

.product-extended-card__image::before {
    content: "";
    display: block;
    height: 330px;
    object-fit: cover;
}

.product-extended-card__image img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.product-extended-card__ribbon {
    position: absolute;
    top: 1.6rem;
    left: 50%;
    transform: translateX(-50%);
    padding: 1.5rem 2rem 1.5rem 2rem;
    background-color: var(--color-blue-soft);
    color: var(--color-white);
    font-size: clamp(1.1rem, 1.3vw, 1.4rem);
    font-weight: 700;
    letter-spacing: 0px;
    text-transform: uppercase;
    text-align: center;
    white-space: normal;
    max-width: 100%;
    width: calc(100% - 3.2rem);
    border-radius: 6px;
    z-index: 1;
}

.product-extended-card__risk {
    display: inline-flex;
    align-items: center;
    gap: 0;
    color: #273347;
    z-index: 1;
}

.product-extended-card__risk-number {
    width: 6rem;
    height: 6rem;
    border-radius: 50%;
    background-color: #57a1f6;
    color: var(--color-white);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.8rem;
    font-weight: 700;
    line-height: 1;
    flex-shrink: 0;
    position: relative;
    z-index: 2;
    border: 2px solid var(--color-white);
}

.product-extended-card--defensive .product-extended-card__risk-number {
    font-size: 30px;
    font-weight: 700;
    line-height: 100px;
    letter-spacing: 0px;
    background-color: #57a1f6;
}

.product-extended-card--moderate .product-extended-card__risk-number {
    font-size: 30px;
    font-weight: 700;
    line-height: 100px;
    letter-spacing: 0px;
    background-color: #60bf6b;
}

.product-extended-card--aggressive .product-extended-card__risk-number {
    font-size: 30px;
    font-weight: 700;
    line-height: 100px;
    letter-spacing: 0px;
    background-color: #e24f35;
}

.product-extended-card--dynamic .product-extended-card__risk-number {
    font-size: 30px;
    font-weight: 700;
    line-height: 100px;
    letter-spacing: 0px;
    background-color: #60bf6b;
}

.product-extended-card__risk-text {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    background-color: var(--color-white);
    border-radius: 0 10px 10px 0;
    padding: 1rem 2rem 1rem 3rem;
    margin-left: -1.6rem;
}

.product-extended-card__risk-sub {
    font-size: clamp(8px, 2vw, 10px);
    font-weight: 400;
    letter-spacing: 0px;
    text-transform: uppercase;
    line-height: 1;
}

.product-extended-card__risk-label {
    font-size: clamp(14px, 2vw, 16px);
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0px;
    text-transform: uppercase;
}

.product-extended-card__body {
    position: relative;
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 3rem;
}

.product-extended-card__content-wrapper {
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    align-items: flex-start;
}

.product-extended-card__content {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.product-extended-card__pill {
    font-size: clamp(12px, 4vw, 14px);
    font-weight: 400;
    color: var(--color-blue);
    line-height: 20px;
    margin-bottom: 1.5rem;
}

.product-extended-card__name {
    font-size: clamp(24px, 3.5vw, 30px);
    font-weight: 700;
    color: var(--color-blue);
    line-height: 28px;
    letter-spacing: 0px;
    margin: 0;
    margin-bottom: 2rem;
}

.product-extended-card__subtitle {
    font-size: clamp(14px, 2vw, 18px);
    color: var(--color-blue);
    font-weight: 400;
    line-height: 20px;
    letter-spacing: 0px;
    margin-bottom: 1rem;
}

.product-extended-card__meta {
    margin-top: auto;
    border-top: 1px solid #E6E6E6;
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    gap: 0.6rem 2rem;
    padding-top: 1rem;
}

.product-extended-card__meta-item {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.product-extended-card__meta-label {
    font-size: 14px;
    color: var(--color-blue);
    font-weight: 400;
    line-height: 28px;
    letter-spacing: 0px;
}

.product-extended-card__meta-value {
    font-size: clamp(16px, 2.5vw, 20px);
    font-weight: 600;
    line-height: 27px;
    letter-spacing: 0px;
    color: var(--color-blue);
}

/* --- Media queries --- */

@media(min-width: 1201px) and (max-width: 1680px) {
    .product-cards-extended__grid {
        gap: 4rem;
    }

    .product-cards-extended__item {
        max-width: calc((100% / 3) - 3rem);
    }

    .product-extended-card {
        width: 100%;
    }
}

/* 2 columns (tablet and small desktop): fluid 2-up grid */
@media (max-width: 1200px) {
    .product-cards-extended__grid {
        margin-top: 5rem;
        gap: 4rem;
    }

    .product-cards-extended__item {
        max-width: 100%;
    }

    .product-extended-card {
        aspect-ratio: auto;
    }

    .product-extended-card__risk-number {
        width: 5.4rem;
        height: 5.4rem;
        font-size: 1.6rem;
    }
}

/* 1 column: 1 card per row, card size capped like product-carousel-card */
@media (max-width: 1024px) {
    .product-cards-extended {
        padding-block: 5rem;
    }

    .product-cards-extended__grid {
        gap: 2.4rem;
        margin-top: 4rem;
    }

    .product-cards-extended__item {
        flex: 0 0 100%;
        max-width: 42rem;
        margin-left: auto;
        margin-right: auto;
    }

    .product-extended-card__image::before {
        height: 230px;
    }

    /* Remove fixed aspect-ratio so card height is content-based; avoid huge cards on mobile */
    .product-extended-card {
        aspect-ratio: auto;
    }

    .product-extended-card__ribbon {
        top: 2rem;
        padding: 1rem 2rem;
        max-width: 90%;
    }

    .product-extended-card__risk-number {
        width: 5rem;
        height: 5rem;
        font-size: 1.5rem;
    }

    .product-extended-card__risk-text {
        padding: 0.7rem 1.5rem 0.7rem 2.5rem;
    }

    .product-extended-card__body {
        padding: 2.4rem 2rem;
    }

.product-extended-card__body::after {
        right: 2rem;
        top: 2rem;
        width: 4.8rem;
        height: 4.8rem;
        background-size: 1.8rem;
    }

    .product-extended-card__meta {
        display: flex;
        flex-direction: column;
        gap: 1.2rem;
    }
}

/* --- components/product-cards/product-cards.css --- */
.product-cards {
    padding-block: 9rem;
}

.product-cards__title {
    font-size: clamp(30px, 4.8vw, 80px);
    font-weight: 300;
    line-height: clamp(30px, 4.8vw, 90px);
    letter-spacing: -2px;
    text-transform: uppercase;
    text-align: center;
    color: var(--color-blue-soft);
}

.product-cards__grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8rem;
    margin-top: 8rem;
}

.product-cards__item {
    height: 100%;
    flex: 0 1 42rem;
    max-width: 42rem;
    width: 100%;
}

.product-card {
    width: 100%;
    border-radius: 18px;
    background: var(--color-white);
    box-shadow: 10px 10px 50.3px 0px #00000033;
    height: 100%;
    display: block;
    overflow: hidden;
    text-decoration: none;
}

.product-card__image-wrap {
    height: 30rem;
    width: 100%;
    object-fit: cover;
    overflow: hidden;
}

.product-card__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 18px 18px 0 0;
    transform: scale(1);
    transition: transform 0.4s ease;
}

.product-card:hover .product-card__image,
.product-card:focus-visible .product-card__image {
    transform: scale(1.08);
}

.product-card__content {
    display: flex;
    gap: 10px;
    padding: 4rem;
    text-align: center;
    flex-direction: column;
    justify-content: center;
}

.product-card__label {
    margin: 0;
    font-size: 1.4rem;
    font-weight: 400;
    line-height: 20px;
    color: var(--color-blue);
}

.product-card__name {
    font-size: clamp(2.8rem, 2vw, 3.4rem);
    line-height: clamp(2.8rem, 2vw, 3.4rem);
    font-weight: 700;
    color: var(--color-blue);
}

/* 2 columns: tablet / small desktop */
@media (max-width: 1200px) {
    .product-cards__grid {
        margin-top: 5rem;
        gap: 6rem;
    }

    .product-cards__item {
        flex: 0 1 calc((100% - 6rem) / 2);
        max-width: none;
    }

    .product-card__image-wrap {
        height: 25rem;
    }
}

/* 1 column: mobile */
@media (max-width: 767px) {
    .product-cards {
        padding-block: 5rem;
    }

    .product-cards__title {
        margin-bottom: 3rem;
    }

    .product-cards__grid {
        justify-content: center;
        gap: 4rem;
    }

    .product-cards__item {
        flex: 0 1 100%;
        max-width: 42rem;
        margin-inline: auto;
    }

    .product-card__content {
        min-height: 9rem;
        padding-inline: 1.4rem;
    }
}

/* --- components/rich-text/rich-text.css --- */
.rich-text {
    padding-block: 140px;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
}

.rich-text__narrow-width {
    max-width: 1500px;
}

.rich-text_background-light {
    background-color: var(--color-beige);
}

.rich-text_background-green {
    background: linear-gradient(155.26deg, #0F5251 20.25%, var(--color-green) 59.8%, #23B8B5 97.13%);
}

.rich-text_background-green .rich-text__title,
.rich-text_background-green .rich-text__subtitle,
.rich-text_background-green .rich-text__small-text {
    color: var(--color-white);
}

.rich-text_background-blue {
    background: linear-gradient(to right, #273347 0%, #5C7EA7 100%);
}

.rich-text_background-light-blue {
    background: #27334714;
}

.rich-text_background-blue .rich-text__title,
.rich-text_background-blue .rich-text__subtitle,
.rich-text_background-blue .rich-text__small-text {
    color: var(--color-white);
}

.rich-text__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 40px;
}

.rich-text__title {
    font-weight: 300;
    text-transform: uppercase;
    font-size: clamp(40px, 4vw, 80px);
    line-height: clamp(50px, 5vw, 90px);
    letter-spacing: -2px;
    color: var(--color-blue);
}

.rich-text__title-bold {
    font-weight: 600;
    text-transform: uppercase;
    font-size: clamp(40px, 4vw, 48px);
    line-height: clamp(50px, 5vw, 60px);
    letter-spacing: -2px;
    color: var(--color-white);
}

.rich-text__title--sm {
    font-weight: 600;
    font-size: clamp(32px, 2.4vw, 48px);
    line-height: clamp(40px, 3vw, 60px);
    letter-spacing: -2%;
}

.rich-text__subtitle {
    font-size: clamp(24px, 2vw, 34px);
    font-weight: 400;
    line-height: clamp(36px, 3vw, 48px);
    letter-spacing: -1px;
    color: var(--color-blue);
}

.rich-text__image {
    width: 100%;
}

img.rich-text__image-img {
    width: 100%;
}

.rich-text__actions {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 16px;
    justify-content: center;
}

.rich-text__small-text {
    font-size: clamp(18px, 2vw, 24px);
    font-weight: 400;
    line-height: clamp(24px, 2vw, 36px);
    letter-spacing: 0px;
}

@media (max-width: 767px) { 
    .rich-text {
        padding-block: 6rem;
    }
}

@media (max-width: 600px) {
    .rich-text {
        padding: 56px 0px;
    }

    .rich-text__actions .button {
        width: 100%;
    }
}

/* --- components/side-menu/side-menu.css --- */
.side-menu {
    position: fixed;
    left: auto;
    right: 14px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1000;
    display: flex;
    flex-direction: column;
    gap: 28px;
    background-color: #273347;
    border-radius: 50px;
    padding: 32px 18px;
}

.side-menu__entry {
    width: 28px;
    height: 28px;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.3s ease;
}

.side-menu__entry--option-1 {
    background-image: url(../../assets/images/icons/message.svg);
}

.side-menu__entry--option-2 {
    background-image: url(../../assets/images/icons/chat.svg);
}

.side-menu__entry--option-3 {
    background-image: url(../../assets/images/icons/icone-reforcar.svg);
}

.side-menu__entry:hover {
    opacity: 0.6;
}

@media (max-width: 767px) {
    .side-menu {
        left: 50%;
        right: auto;
        top: auto;
        bottom: max(6px, env(safe-area-inset-bottom, 0px));
        transform: translateX(-50%);
        flex-direction: row;
        justify-content: center;
        align-items: center;
        padding: 14px 28px;
    }
}

/* --- components/simulator-comecarpoupar/simulator-comecarpoupar.css --- */
  @import "../simulator/simulator.css";


/* --- components/simulator/simulator.css --- */
.simulator {
    padding-block: 14rem;
    background-color: #27334714;
}

.simulator-container {
    max-width: 1600px;
    width: 100%;
    margin: auto;
    padding-inline: var(--container-padding);
}

.simulator__title {
    text-align: center;
    color: var(--color-blue-soft);
    font-size: var(--heading-font-size);
    font-weight: var(--heading-font-weight);
    letter-spacing: var(--heading-letter-spacing);
    text-transform: var(--heading-text-transform);
    margin-bottom: 6rem;
}

.simulator__panels {
    display: grid;
    grid-template-columns: 1.5fr 1.2fr;
    gap: 2rem;
    margin-bottom: 4rem;
}

.simulator__panel {
    border-radius: 18px;
    /*box-shadow: 0 4px 24px rgba(0, 0, 0, 0.08);*/
}

.simulator__panel--controls {
    padding: 6rem 7rem;
    background-color: var(--color-white);
}

.simulator__panel--risk {
    padding: 3.5rem;
    background-color: var(--color-blue-soft);
    color: var(--color-white);
    display: flex;
    flex-direction: column;
    gap: 3rem;
}

.simulator__controls {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.simulator__control-row {
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-rows: auto auto;
    gap: 0.5rem 1rem;
    align-items: center;
    color: var(--color-blue);
}

.simulator__control-row:not(:last-child) {
    margin-bottom: 4rem;
}

.simulator__control-label {
    grid-row: 1;
    grid-column: 1;
    font-size: 20px;
    font-weight: 400;
    min-width: 0;
    color: #364153;
}

.simulator__control-value {
    grid-row: 1;
    grid-column: 2;
}

.simulator__control-row .simulator__range {
    grid-row: 2;
    grid-column: 1 / -1;
}

.simulator__range {
    --range-value: 0;
    --track-h: 6px;
    --thumb-size: 20px;
    -webkit-appearance: none;
    appearance: none;
    width: 100%;
    height: var(--thumb-size);
    background: transparent;
    padding: 0;
    margin: 0;
    display: block;
}

.simulator__range:focus {
    outline: none;
}

.simulator__range::-webkit-slider-runnable-track {
    height: var(--track-h);
    background: linear-gradient(to right,
            var(--color-gold) 0%,
            var(--color-gold) var(--range-value),
            #e0e0e0 var(--range-value),
            #e0e0e0 100%);
    border-radius: 999px;
}

.simulator__range::-moz-range-track {
    height: var(--track-h);
    background: #e0e0e0;
    border-radius: 999px;
}

.simulator__range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: var(--thumb-size);
    height: var(--thumb-size);
    border-radius: 50%;
    background: var(--color-gold);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
    border: 3px solid var(--color-white);
    cursor: pointer;
    margin-top: calc((var(--track-h) - var(--thumb-size)) / 2);
}

.simulator__range::-moz-range-thumb {
    width: var(--thumb-size);
    height: var(--thumb-size);
    border-radius: 50%;
    background: var(--color-gold);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
    cursor: pointer;
    border: none;
}

.simulator__range::-moz-range-progress {
    height: var(--track-h);
    background: var(--color-gold);
    border-radius: 999px 0 0 999px;
}

.simulator__control-row .simulator__control-value {
    font-size: 24px;
    font-weight: 700;
    line-height: 30px;
    text-align: right;
    min-width: 2.5ch;
}

.simulator__control-row .simulator__control-number {
    font-weight: 700;
    color: #364153;
}

.simulator__control-row .simulator__control-unit {
    font-weight: 400;
    color: #364153;
}

.simulator__risk-header {
    text-align: center;
    font-size: 30px;
    font-weight: 300;
    letter-spacing: -5%;
    text-transform: uppercase;
    padding-bottom: 2rem;
    border-bottom: 1px solid #FFFFFF20;
}

.simulator__product-line,
.simulator__profile-product-line {
    font-size: 16px;
    margin-bottom: 0.6rem;
    line-height: 20px;
    font-weight: 300;
}

.simulator__product-name,
.simulator__profile-product-name {
    font-size: 20px;
    font-weight: 700;
    margin-bottom: 2.2rem;
}

.simulator__risk-body {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 4rem;
    margin-bottom: 2rem;
}

.simulator__profiles {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}

.simulator__profile-box {
    display: flex;
    flex-direction: column;
    align-items: center;
    border: 1px solid #FFFFFF33;
    border-radius: 8px;
    padding: 2rem;
    transition: background-color 0.2s ease, border-color 0.2s ease;
    cursor: pointer;
}

.simulator__profile-box:not(:last-child) {
    margin-bottom: 2rem;
}

.simulator__profile-box:hover,
.simulator__profile-box--active {
    background-color: var(--color-green);
    border-color: transparent;
}

.simulator__profile-accordion {
    display: none;
    width: 100%;
    margin-top: 1.5rem;
    text-align: left;
}

.simulator__profile-badge {
    display: inline-block;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: uppercase;
    color: #fff;
    padding: 0.6rem 1rem;
    border-radius: 4px;
    white-space: nowrap;
    min-width: 9rem;
    text-align: center;
}

.simulator__profile-value {
    font-size: 34px;
    font-weight: 700;
    white-space: nowrap;
}

.simulator__profile-value-number {
    font-size: 34px;
    font-weight: 700;
}

.simulator__profile-currency {
    font-weight: 400;
    font-size: 20px;
    line-height: 1;
    letter-spacing: 0;
    vertical-align: top;
    margin-left: 0.15em;
}

.simulator__profile-asterisk {
    font-size: 20px;
    font-weight: 400;
    line-height: 1;
    vertical-align: top;
}

.simulator__product-info {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}

.simulator__product-details,
.simulator__profile-product-details {
    padding-left: 1.6rem;
    font-size: 14px;
    line-height: 20px;
    font-weight: 400;
    margin-bottom: 1rem;
}

.simulator__product-details li {
    margin-bottom: 1.8rem;
}

.simulator__profile-product-details li {
    margin-bottom: 0.6rem;
}

.simulator__cta {
    text-align: center;
}

.simulator__button {
    max-width: 85%;
    margin-top: auto;
}

.simulator__button--mobile {
    display: none;
    width: 100%;
    max-width: 100%;
    margin-top: 1.5rem;
}

.simulator__disclaimer {
    font-size: 16px;
    color: #000000;
    line-height: 26px;
    max-width: 96rem;
    margin: 0 auto;
    text-align: center;
}

@media (max-width: 1200px) {
    .simulator__panels {
        grid-template-columns: 1fr;
    }

    .simulator__button {
        max-width: 100%;
    }
}

@media (max-width: 767px) {
    .simulator {
        padding-block: 5rem;
    }

    .simulator__title {
        font-size: clamp(3rem, 8vw, 5rem);
        margin-bottom: 3rem;
    }

    .simulator__panel--controls {
        padding: 3rem 2.5rem;
    }

    .simulator__panel--risk {
        padding: 2.5rem;
    }

    .simulator__control-label {
        font-size: 16px;
    }

    .simulator__control-row .simulator__control-value {
        font-size: 18px;
        line-height: 24px;
    }

    .simulator__disclaimer {
        font-size: 13px;
        line-height: 22px;
    }

    .simulator__risk-body {
        grid-template-columns: 1fr;
    }

    .simulator__product-details {
        margin-bottom: 2.5rem;
    }

    .simulator__product-info {
        display: none;
    }

    .simulator__profile-box--active+.simulator__profile-accordion {
        padding: 1.3rem;
        padding-bottom: 5rem;
        display: block;
    }

    .simulator__product-info .simulator__button {
        display: none;
    }

    .simulator__button--mobile {
        display: block;
    }
}

/* --- components/start-saving/start-saving.css --- */
.start-saving {
    background: linear-gradient(to bottom, #273347 0%, #5C7EA7 100%);
    padding-block: 12rem 10rem;
    overflow: hidden;
}

.start-saving__inner {
    max-width: 1600px;
    margin-inline: auto;
    padding-inline: 2rem;
}

.start-saving__main-title {
    text-align: center;
    color: #fff;
    font-size: clamp(40px, 4vw, 80px);
    font-weight: 300;
    letter-spacing: -2px;
    line-height: clamp(46px, 4vw, 120px);
    text-transform: uppercase;
    margin-bottom: 0.5rem;
}

.start-saving__highlight {
    color: #FFAD42;
}

.start-saving__subtitle {
    text-align: center;
    font-size: 27px;
    font-weight: 500;
    line-height: 60px;
    letter-spacing: 0px;
    color: rgba(255, 255, 255, 0.75);
    margin-bottom: 5rem;
}

.start-saving__card {
    display: flex;
    flex-direction: row;
    gap: 8rem;
    padding-inline: 3rem;
    padding-block: 8rem;
    align-items: center;
    margin-bottom: 12rem;
}

.start-saving__card-media {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    max-width: 680px;
    width: 100%;
}

.start-saving__card--image-left .start-saving__card-media:before {
    content: '';
    position: absolute;
    right: -20%;
    bottom: -20%;
    width: 80%;
    aspect-ratio: 1;
    background: var(--color-green);
    border-radius: 100%;
}

.start-saving__shape {
    position: absolute;
    z-index: 0;
}

.start-saving__shape--teal {
    width: 480px;
    height: 480px;
    background: var(--color-green);
    border-radius: 50%;
    right: -20%;
    bottom: -15%;
    left: auto;
    top: auto;
}

.start-saving__button {
    z-index: 2;
}

.start-saving__shape--mustard {
    width: 480px;
    height: 380px;
    background: #D9A229;
    border-radius: 80px;
    left: 5%;
    bottom: -15%;
    right: auto;
    top: auto;
}

.start-saving__img_1 {
    position: relative;
    z-index: 2;
    width: 100%;
    border-radius: 18px;
}

.start-saving__img_2 {
    position: relative;
    z-index: 2;
    width: 100%;
    border-radius: 18px;
}

.start-saving__card--image-right .start-saving__card-content-wrapper .start-saving__card-content {
    width: 100%;
    max-width: 60%;
    text-align: right;
    align-items: self-end;
    margin-top: 0;
}

.start-saving__card-content-wrapper {
    padding: 9rem;
    background: #58779E;
    margin-right: -26rem;
    margin-bottom: -4rem;
    border-radius: 62px;
}

.start-saving__card--image-right {
    gap: 0;
    justify-self: right;
}

.start-saving__card--image-right .start-saving__card-media {
    position: relative;
}

.start-saving__card--image-right .start-saving__card-media:before {
    content: '';
    position: absolute;
    left: -15%;
    bottom: -15%;
    width: 90%;
    height: 65%;
    background: #BF901E;
    border-radius: 118px;
}

.start-saving__card--image-right .start-saving__card-media {
    justify-content: flex-end;
    margin-top: -6rem;
    max-width: 480px;
    width: 100%;
}

.start-saving__card-content {
    display: flex;
    flex-direction: column;
    width: 42%;
    align-items: flex-start;
    align-self: start;
    margin-top: 8rem;
    gap: 4rem;
}

.start-saving__card-title {
    font-size: clamp(28px, 4vw, 48px);
    font-weight: 600;
    line-height: clamp(34px, 4vw, 58px);
    text-transform: uppercase;
    color: #fff;
}

.start-saving__card-text {
    font-size: clamp(20px, 4vw, 24px);
    font-weight: 400;
    line-height: 36px;
    color: rgba(255, 255, 255, 0.85);
    z-index: 2;
}

.start-saving__footer {
    text-align: center;
    margin-block: 6rem;
    padding-top: 4rem;
}

.start-saving__footer-title {
    font-size: clamp(28px, 4vw, 48px);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: -2%;
    line-height: clamp(34px, 4vw, 36px);
    color: #fff;
    margin-bottom: 4rem;
}

.start-saving__footer-subtitle {
    font-size: clamp(20px, 4vw, 24px);
    font-weight: 400;
    line-height: clamp(34px, 4vw, 36px);
    letter-spacing: 0px;
    color: rgba(255, 255, 255, 0.75);
    margin-bottom: 4rem;
}

.start-saving .button--secondary {
    background: transparent;
    border: 2px solid #fff;
    color: #fff;
}

.start-saving .button--secondary:hover {
    background: rgba(255, 255, 255, 0.1);
}

@media (max-width: 1024px) {
    .start-saving__card {
        flex-direction: column;
        gap: 3rem;
        padding-inline: 0;
        padding-block: 0;
    }

    .start-saving__card--image-left {
        margin-bottom: 10rem;
    }

    .start-saving__card--image-right {
        flex-direction: column-reverse;
        gap: 0;
        margin-bottom: 0;

    }

    .start-saving__card-content-wrapper {
        padding: 13rem 3rem 4rem;
        margin-right: 0;
        margin-bottom: 0;
        border-radius: 24px;
        width: 100%;
        margin-top: -3rem;
        border-radius: 0 0 24px 24px;
    }

    .start-saving__card--image-right .start-saving__card-content-wrapper .start-saving__card-content {
        display: flex;
        max-width: 100%;
        text-align: left;
        align-items: flex-start;
        position: relative;
        z-index: 2;
    }

    .start-saving__card-content {
        width: 100%;
        max-width: 100%;
        margin-top: 0;
        z-index: 1;
    }

    .start-saving__card-media {
        max-width: 100%;
    }

    .start-saving__card--image-right .start-saving__card-media {
        max-width: 100%;
        margin-top: 0;
    }

    .start-saving__shape--teal {
        width: 260px;
        height: 260px;
    }

    .start-saving__shape--mustard {
        width: 260px;
        height: 200px;
    }

    .start-saving__card--image-left .start-saving__card-title {
        max-width: 75%;
    }

    .start-saving__card--image-left .start-saving__card-media:before {
        right: -30%;
        bottom: -22%;
    }

    .start-saving__card--image-right .start-saving__card-media:before {
        width: 100%;
        border-radius: 0 46px 46px 0;
    }

    .start-saving__footer {
        margin-top: 0;
    }


}

@media (max-width: 767px) {
    .start-saving {
        padding-block: 5rem 6rem;
    }

    .start-saving__inner {
        padding-inline: 2rem;
    }

    .start-saving .button--secondary {
        width: 100%;
    }
}

/* --- components/table/table.css --- */
.data-table-section {
    padding-block: 8rem 10rem;
}

.data-table__title {
    font-size: clamp(3.6rem, 5vw, 8rem);
    font-weight: 300;
    line-height: 1.1;
    letter-spacing: -0.02em;
    color: var(--color-blue-soft);
    text-align: center;
    text-transform: uppercase;
    margin-bottom: 1rem;
}

.data-table__subtitle {
    font-size: 28px;
    font-weight: 400;
    text-align: center;
    line-height: 48px;
    letter-spacing: -1px;
    margin-bottom: 6rem;
    color: var(--color-blue-soft);
}

.data-table__wrap {
    border-bottom: 2px solid var(--color-blue-soft);
    overflow-x: visible;
}

.data-table {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding-bottom: 8px;
}

.data-table tr {
    display: flex;
    flex-direction: row;
    gap: 8px;
}

.data-table tbody {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.data-table tr:last-child td {
    border-bottom: 0;
}

.data-table th,
.data-table td {
    display: flex;
    flex-direction: column;
    align-content: center;
    justify-content: center;
    font-size: 20px;
    text-align: center;
    width: 19.5%;
}

.data-table th {
    padding: 3rem 2rem;
}

.data-table td {
    padding: 1.8rem 2rem;
}

.data-table th:first-child,
.data-table td:first-child {
    text-align: left;
    background: white;
    border-bottom: 1px solid #00000033;
    width: 22%;
}

.data-table thead th {
    font-weight: 700;
    font-size: clamp(18px, 1.5vw, 22px);
    line-height: 32px;
    color: #FFFFFF;
    background: var(--color-green);
    border-radius: 12px 12px 0 0;
}

.data-table thead th:last-child {
    border-right: none;
}

.data-table__th--date {
    background: var(--color-blue-soft) !important;
    font-size: clamp(16px, 1.5vw, 20px);
    font-weight: 700;
    letter-spacing: 2px;
    text-align: center !important;
}

.data-table tbody td:not(:first-child) {
    background: var(--color-green-alpha);
}

.data-table__name {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.data-table__name strong {
    font-size: clamp(18px, 1.5vw, 24px);
    font-weight: 700;
    color: var(--color-blue-soft);
    line-height: 26px;
    letter-spacing: -1px;
}

.data-table__name-label {
    font-size: clamp(16px, 1.5vw, 18px);
    font-weight: 700;
    color: var(--color-blue-soft);
    line-height: 26px;
    letter-spacing: -1px;
}

.data-table__name-label--caps {
    font-size: 1.1rem;
    font-weight: 600;
    color: #6b7a8d;
    letter-spacing: 0.04em;
}

.data-table__name--solo strong {
    font-size: 1.7rem;
}

.data-table__footnotes {
    margin-top: 2.4rem;
    font-weight: 400;
    font-size: 16px;
    line-height: 26px;
    letter-spacing: 0;
    color: var(--color-blue-soft);
    padding: 0 2.4rem;
}

/* Responsive */
@media (max-width: 1200px) {
    .data-table__wrap {
        width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .data-table {
        width: 100%;
        max-width: 40%;
    }

    .data-table tr {
        flex-wrap: nowrap;
    }

    .data-table th {
        padding: 2rem;
    }

    .data-table th,
    .data-table td {
        min-width: 100%;
        width: 100%;
        box-sizing: border-box;
    }

    .data-table th:first-child,
    .data-table td:first-child {
        min-width: 100%;
        width: 100%;
    }
}

@media (max-width: 767px) {
    .data-table__footnotes {
        padding: 0 1.6rem;
    }

    .data-table {
        width: 100%;
        max-width: 60%;
    }
}

/* --- components/tagline-banner/tagline-banner.css --- */
.box__image__wrap {
    position: relative;
    max-width: calc(var(--container) + 2 * var(--container-padding));
    margin-inline: auto;
    padding-inline: var(--container-padding);
    margin-bottom: calc(-1 * var(--box-image-max-height) / 2);
}

.box__image__img {
    width: 100%;
    height: auto;
    max-height: var(--box-image-max-height);
    min-height: 320px;
    object-fit: cover;
    border-radius: 20px;
    display: block;
}

.box__image__overlay {
    position: absolute;
    inset: 0;
    border-radius: 20px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 4rem;
    inset-block: 0;
    inset-inline: var(--container-padding);
}

.box__image__line1,
.box__image__line2 {
    margin: 0;
    color: #fff;
    font-family: var(--primary-font);
    font-weight: 300;
    font-size: 40px;
    line-height: 48px;
    letter-spacing: -1%;
    text-align: center;
    text-shadow: 0 1px 6px rgba(0, 0, 0, 0.5);
}

.box__image__line3 {
    margin: 0;
    color: #fff;
    font-family: var(--primary-font);
    font-weight: 600;
    font-size: 40px;
    line-height: 48px;
    letter-spacing: -1%;
    text-align: center;
    text-shadow: 0 1px 6px rgba(0, 0, 0, 0.5);
}

@media (max-width: 1200px) {
    :root {
        --box-image-max-height: 560px;
    }
}

@media (max-width: 1024px) {
    :root {
        --box-image-max-height: 480px;
    }
}

@media (max-width: 900px) {
    :root {
        --box-image-max-height: 400px;
    }
}

@media (max-width: 767px) {
    :root {
        --box-image-max-height: 320px;
    }

    .box__image__overlay {
        padding: 2rem;
    }

    .box__image__line1,
    .box__image__line2,
    .box__image__line3 {
        font-size: clamp(2rem, 5.5vw, 3.2rem);
        line-height: 1.35;
    }
}

/* --- components/two-grid-text/two-grid-text.css --- */
/* two-grid-text: two-column layout – title left, checklist right */

.two-grid-text {
  padding: clamp(2rem, 5vw, 10rem) 0;
  background-color: #fff;
}

.two-grid-text__inner {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: clamp(3rem, 8vw, 5rem);
  align-items: start;
  max-width: 1600px;
  margin: 0 auto;
}

.two-grid-text__header {
  text-align: left;
}

.two-grid-text__title {  
  font-size: clamp(38px, 4vw, 48px);
  font-weight: 600;
  line-height: 58px;
  letter-spacing: -0.02em;
  color: var(--color-blue-soft);
  text-transform: uppercase;
  text-align: right;
  margin: 0;
}

.two-grid-text__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.two-grid-text__item {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.two-grid-text__icon {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.two-grid-text__symbol {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.two-grid-text__text {
  font-size: clamp(20px, 4vw, 34px);
  line-height: clamp(24px, 4vw, 48px);
  color: #525252;
  font-weight: 400;
}

@media (max-width: 767px) {
  .two-grid-text__inner {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .two-grid-text__header {
    text-align: center;
  }

  .two-grid-text__title {
    text-align: center;
  }
}

/* --- components/vantagens-ppr/vantagens-ppr.css --- */
.vantagens-ppr {
    background: linear-gradient(135deg, #0F5251 0%, var(--color-green) 40%, #23B8B5 100%);
    padding-block: 8rem 10rem;
}

.vantagens-ppr__inner {
    max-width: calc(var(--container) + 2 * var(--container-padding));
    margin-inline: auto;
    padding-inline: var(--container-padding);
}

.vantagens-ppr__title {
    font-size: clamp(3.6rem, 5vw, 8rem);
    font-weight: 300;
    line-height: 1.1;
    letter-spacing: -0.02em;
    color: #fff;
    text-align: center;
    text-transform: uppercase;
    margin-bottom: 1rem;
}

.vantagens-ppr__subtitle {
    font-size: 2rem;
    font-weight: 400;
    color: rgba(255, 255, 255, 0.9);
    text-align: center;
    max-width: 55ch;
    margin-inline: auto;
    margin-bottom: 5rem;
}

.vantagens-ppr__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 4rem 3rem;
}

.vantagens-ppr__item {
    display: grid;
    grid-template-columns: 3.8rem 1fr;
    grid-template-rows: auto 1fr;
    column-gap: 1.8rem;
    text-align: left;
}

.vantagens-ppr__icon {
    grid-column: 1;
    grid-row: 1 / 3;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.8rem;
    height: 3.8rem;
    border-radius: 50%;
    color: var(--color-gold);
    align-self: start;
    margin-top: -1rem;
}

.vantagens-ppr__icon-image {
    width: 3.8rem;
    height: 3.8rem;
    display: block;
    object-fit: contain;
}

.vantagens-ppr__item-title {
    font-size: 1.8rem;
    font-weight: 700;
    color: #fff;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 1.2rem;
}

.vantagens-ppr__item-text {
    font-size: 1.5rem;
    line-height: 1.5;
    color: rgba(255, 255, 255, 0.9);
    margin: 0;
}

@media (max-width: 1024px) {
    .vantagens-ppr__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 600px) {
    .vantagens-ppr__grid {
        grid-template-columns: 1fr;
    }
}

/* --- components/why-reinforce/why-reinforce.css --- */
.why-reinforce {
    padding-block: 14rem;
    background: #fff;
}

.why-reinforce__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20rem;
    align-items: center;
    max-width: 1400px;
}

.why-reinforce__title {
    font-size: clamp(3.6rem, 5vw, 8rem);
    font-weight: 300;
    line-height: 90px;
    letter-spacing: -3%;
    color: var(--color-blue-soft);
    text-transform: uppercase;
    margin-bottom: 4.4rem;
}

.why-reinforce__subtitle {
    font-size: clamp(1.6rem, 2vw, 3.4rem);
    font-weight: 400;
    color: var(--color-blue);
    line-height: 48px;
    letter-spacing: -1px;
}

.why-reinforce__list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 5rem;
}

.why-reinforce__item {
    display: flex;
    align-items: flex-start;
    gap: 5rem;
}

.why-reinforce__icon {
    flex-shrink: 0;
    width: 10rem;
    height: 10rem;
    border-radius: 50%;
    background: var(--color-gold);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
}

.why-reinforce__icon img {
    display: block;
    width: 4rem;
    height: 4rem;
    object-fit: contain;
}

.why-reinforce__text {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.why-reinforce__item-title {
    font-size: clamp(1.6rem, 2vw, 2rem);
    font-weight: 700;
    color: var(--color-blue);
    line-height: 24px;
    letter-spacing: 0px;
    margin: 0;
}

.why-reinforce__item-desc {
    font-size: clamp(1.4rem, 2vw, 1.6rem);
    font-weight: 400;
    color: var(--color-blue);
    line-height: 24px;
    margin: 0;
    letter-spacing: 0px;
}

@media (max-width: 900px) {
    .why-reinforce__inner {
        grid-template-columns: 1fr;
        gap: 4rem;
    }
}

@media (max-width: 600px) {
    .why-reinforce {
        padding-block: 5rem 6rem;
    }

    .why-reinforce__title {
        font-size: clamp(3rem, 9vw, 5rem);
    }

    .why-reinforce__icon {
        width: 10rem;
        height: 10rem;
    }
}

/* --- components/wysiwyg-box/wysiwyg-box.css --- */
/* Shell only: .wysiwyg-box > .container > .wysiwyg (WordPress the_content / blocks — prose lives in wysiwyg.css) */

.wysiwyg-box {
    padding-block: 4rem;
    width: 100%;
}

.wysiwyg-box .container {
    max-width: 1040px;
    padding-inline: 2rem;
}

/* Page title as first core/heading block inside the WYSIWYG wrapper */
.wysiwyg-box .wysiwyg > h2.wp-block-heading:first-child,
.wysiwyg-box .wysiwyg > h2:not([class]):first-child {
    margin-bottom: 9rem;
}

@media (max-width: 1024px) {
    .wysiwyg-box .wysiwyg > h2.wp-block-heading:first-child,
    .wysiwyg-box .wysiwyg > h2:not([class]):first-child {
        margin-bottom: 6rem;
    }
}

@media (max-width: 767px) {
    .wysiwyg-box {
        padding-block: 5rem 6rem;
    }

    .wysiwyg-box .container {
        padding-inline: 1.6rem;
    }

    .wysiwyg-box .wysiwyg > h2.wp-block-heading:first-child,
    .wysiwyg-box .wysiwyg > h2:not([class]):first-child {
        text-align: left;
    }
}

/* --- components/wysiwyg/wysiwyg.css --- */
/**
 * Prose / WYSIWYG scope for WordPress post content (the_content) and static HTML mirrors.
 * Typography and spacing are copied from .blog-post__content-related rules in blog-post.css;
 * blog-post.css is unchanged — this file is the single place for .wysiwyg-scoped prose.
 */

/* --- Base (from .blog-post__content + .blog-post__text body size) --- */
.wysiwyg {
    color: var(--color-blue-soft);
    font-family: var(--primary-font);
    font-size: clamp(18px, 3.4vw, 24px);
    line-height: clamp(26px, 3.4vw, 36px);
}

.wysiwyg p {
    margin: 0 0 2.4rem;
}

.wysiwyg p:last-child {
    margin-bottom: 0;
}

/* Headings: bare tags or WP block class only, so custom heading classes on parents stay in control */
.wysiwyg h2:not([class]),
.wysiwyg h2.wp-block-heading {
    font-size: clamp(30px, 4.5vw, 48px);
    line-height: clamp(36px, 4.5vw, 58px);
    text-transform: uppercase;
    font-weight: 600;
    letter-spacing: -2px;
    margin: 10rem 0 3rem;
    color: inherit;
}

.wysiwyg h2:not([class]):first-child,
.wysiwyg h2.wp-block-heading:first-child {
    margin-top: 0;
}

.wysiwyg h3:not([class]),
.wysiwyg h3.wp-block-heading {
    font-size: clamp(24px, 3.2vw, 34px);
    line-height: clamp(32px, 3.6vw, 44px);
    font-weight: 600;
    letter-spacing: -1px;
    margin: 6rem 0 2rem;
    color: inherit;
}

.wysiwyg h3:not([class]):first-child,
.wysiwyg h3.wp-block-heading:first-child {
    margin-top: 0;
}

.wysiwyg h4:not([class]),
.wysiwyg h4.wp-block-heading {
    font-size: clamp(20px, 2.6vw, 26px);
    line-height: clamp(28px, 3vw, 36px);
    font-weight: 600;
    margin: 4rem 0 1.6rem;
    color: inherit;
}

.wysiwyg h5:not([class]),
.wysiwyg h5.wp-block-heading,
.wysiwyg h6:not([class]),
.wysiwyg h6.wp-block-heading {
    font-size: clamp(18px, 2.2vw, 22px);
    line-height: clamp(26px, 2.8vw, 32px);
    font-weight: 600;
    margin: 3rem 0 1.2rem;
    color: inherit;
}

/* Inline semantics */
.wysiwyg a {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

.wysiwyg a:hover {
    color: var(--color-gold);
}

.wysiwyg strong,
.wysiwyg b {
    font-weight: 700;
}

.wysiwyg em,
.wysiwyg i,
.wysiwyg cite {
    font-style: italic;
}

.wysiwyg small {
    font-size: 0.85em;
}

.wysiwyg sub,
.wysiwyg sup {
    font-size: 0.75em;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
}

.wysiwyg sup {
    top: -0.35em;
}

.wysiwyg sub {
    bottom: -0.2em;
}

.wysiwyg mark {
    background: rgba(191, 144, 30, 0.25);
    padding: 0 0.15em;
}

.wysiwyg abbr[title] {
    text-decoration: underline dotted;
    cursor: help;
}

/* Unordered lists: checklist column (flex, gap, check icon on each direct li) */
.wysiwyg ul {
    list-style: none;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 2rem;
    margin-top: 0;
    margin-bottom: 2rem;
    max-width: calc(100% - 160px);
    margin-inline: auto;
}

.wysiwyg ul:last-child {
    margin-bottom: 0;
}

.wysiwyg ul > li {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    column-gap: 1.6rem;
    row-gap: 0;
    color: var(--color-blue-soft);
    font-size: clamp(16px, 2.2vw, 24px);
    line-height: clamp(24px, 2.2vw, 36px);
}

.wysiwyg ul > li::before {
    content: "";
    width: 2.8rem;
    height: 2.8rem;
    background: url('../../assets/images/icons/check-step.svg') no-repeat center center;
    background-size: contain;
    flex: 0 0 2.8rem;
    margin-top: 0.2em;
}

/* Nested list: new row below label text, indented (icon + gap + extra inset) */
.wysiwyg ul > li > ul,
.wysiwyg ul > li > ol {
    flex: 1 1 100%;
    min-width: 0;
    margin-top: 1.2rem;
    padding-left: calc(2.8rem + 1.6rem + 1.2rem);
    box-sizing: border-box;
}

/* Ordered lists */
.wysiwyg ol {
    list-style: none;
    margin: 0 0 2rem;
    padding: 0;
    counter-reset: wysiwyg-ol;
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.wysiwyg ol:last-child {
    margin-bottom: 0;
}

.wysiwyg ol > li {
    counter-increment: wysiwyg-ol;
    position: relative;
    padding-left: calc(2.8rem + 1.6rem);
    color: var(--color-blue-soft);
    font-size: clamp(16px, 2.2vw, 24px);
    line-height: clamp(24px, 2.2vw, 36px);
}

.wysiwyg ol > li::before {
    content: counter(wysiwyg-ol) ".";
    position: absolute;
    left: 0;
    top: 0;
    width: 2.8rem;
    height: 2.8rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: clamp(16px, 2.2vw, 20px);
    line-height: 1;
    color: var(--color-blue-soft);
}

.wysiwyg ol > li > ul,
.wysiwyg ol > li > ol {
    margin-top: 1.2rem;
    padding-left: 1.2rem;
    box-sizing: border-box;
}

.wysiwyg ol ol {
    margin: 0;
    margin-top: 1rem;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 2rem;
    counter-reset: wysiwyg-ol;
}

/*
 * Lower-roman ordered list (institutional prose).
 * Register in theme.json as block style for core/list, slug: sgf-lower-roman → class .is-style-sgf-lower-roman
 */
.wysiwyg ol.wp-block-list.is-style-sgf-lower-roman {
    list-style: none;
    margin: 0 0 3rem;
    padding: 0;
    display: block;
    counter-reset: sgf-lower-roman;
}

.wysiwyg ol.wp-block-list.is-style-sgf-lower-roman:last-child {
    margin-bottom: 0;
}

.wysiwyg ol.wp-block-list.is-style-sgf-lower-roman > li {
    counter-increment: sgf-lower-roman;
    position: static;
    padding-left: 0;
    margin-bottom: 1rem;
    display: block;
    list-style: none;
    color: inherit;
    font-size: inherit;
    line-height: inherit;
}

.wysiwyg ol.wp-block-list.is-style-sgf-lower-roman > li:last-child {
    margin-bottom: 0;
}

.wysiwyg ol.wp-block-list.is-style-sgf-lower-roman > li::before {
    content: counter(sgf-lower-roman, lower-roman) ") ";
    position: static;
    display: inline;
    width: auto;
    height: auto;
    font-weight: 600;
    font-size: inherit;
    line-height: inherit;
    color: inherit;
    margin: 0;
}

/* Definition lists */
.wysiwyg dl {
    margin: 0 0 2.4rem;
}

.wysiwyg dt {
    font-weight: 600;
    margin-top: 1.6rem;
}

.wysiwyg dt:first-child {
    margin-top: 0;
}

.wysiwyg dd {
    margin: 0.4rem 0 0 1.6rem;
}

/* Blockquote (from .blog-post__quote* — WP outputs blockquote > p, cite) */
.wysiwyg blockquote {
    margin: 4rem 12rem;
    padding: 4.2rem 3.6rem 0;
    padding-left: 8rem;
    border: none;
    position: relative;
}

.wysiwyg blockquote::before {
    content: "“";
    position: absolute;
    left: 0;
    top: 4.2rem;
    font-size: clamp(60px, 10vw, 80px);
    font-weight: 600;
    line-height: 1;
    color: var(--color-gold);
}

.wysiwyg blockquote p {
    font-size: clamp(18px, 3.4vw, 26px);
    line-height: clamp(26px, 3.4vw, 36px);
    margin-bottom: 1rem;
}

.wysiwyg blockquote p:last-of-type {
    margin-bottom: 0;
}

.wysiwyg blockquote cite,
.wysiwyg blockquote footer,
.wysiwyg blockquote .wp-block-quote__citation {
    display: block;
    margin-top: 1rem;
    font-size: 18px;
    line-height: 36px;
    font-weight: 400;
    font-style: normal;
    color: #273347;
}

/* Figures & media */
.wysiwyg figure {
    margin: 4rem 0;
}

.wysiwyg figure:first-child {
    margin-top: 0;
}

/* Core image block — extra vertical rhythm (matches long-form / blog in-article images) */
.wysiwyg figure.wp-block-image {
    margin-block: 6rem;
}

.wysiwyg figure.wp-block-image:first-child {
    margin-top: 0;
}

.wysiwyg figure.wp-block-image img {
    object-fit: contain;
    object-position: center;
}

.wysiwyg img,
.wysiwyg video {
    max-width: 100%;
    height: auto;
    display: block;
}

.wysiwyg figcaption {
    margin-top: 1.2rem;
    font-size: clamp(14px, 1.8vw, 16px);
    line-height: 1.5;
    color: rgba(39, 51, 71, 0.7);
}

/* Tables */
.wysiwyg table {
    width: 100%;
    border-collapse: collapse;
    margin: 2.4rem 0;
    font-size: clamp(16px, 2vw, 20px);
}

.wysiwyg th,
.wysiwyg td {
    border: 1px solid rgba(39, 51, 71, 0.2);
    padding: 1rem 1.2rem;
    text-align: left;
    vertical-align: top;
}

.wysiwyg th {
    font-weight: 600;
    background: rgba(39, 51, 71, 0.06);
}

.wysiwyg .wp-block-table {
    overflow-x: auto;
    margin-bottom: 2.4rem;
}

/* Code */
.wysiwyg code {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    font-size: 0.9em;
    background: rgba(39, 51, 71, 0.08);
    padding: 0.15em 0.4em;
    border-radius: 4px;
}

.wysiwyg pre {
    margin: 2.4rem 0;
    padding: 1.6rem 2rem;
    overflow-x: auto;
    background: rgba(39, 51, 71, 0.08);
    border-radius: 8px;
    font-size: clamp(14px, 1.8vw, 16px);
    line-height: 1.55;
}

.wysiwyg pre code {
    background: none;
    padding: 0;
    font-size: inherit;
}

/* Horizontal rule — short gradient accent bar */
.wysiwyg hr {
    border: none;
    width: 200px;
    max-width: 100%;
    height: 3px;
    margin-block: 11rem;
    margin-inline: 0;
    background: linear-gradient(to right, var(--color-blue-soft) 0%, var(--color-blue) 100%);
    position: relative;
}

/* Address */
.wysiwyg address {
    margin: 0 0 2.4rem;
    font-style: normal;
    line-height: inherit;
}

/* WordPress alignment (classic + blocks) */
.wysiwyg .alignleft {
    float: left;
    margin: 0 2rem 1.6rem 0;
}

.wysiwyg .alignright {
    float: right;
    margin: 0 0 1.6rem 2rem;
}

.wysiwyg .aligncenter {
    display: block;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}

.wysiwyg::after {
    content: "";
    display: table;
    clear: both;
}

/* Wide / full (containers may still clip — theme handles outer width) */
.wysiwyg .alignwide {
    max-width: 100%;
}

.wysiwyg .alignfull {
    max-width: none;
    width: 100%;
}

/* Captions (WP .wp-element-caption) */
.wysiwyg .wp-element-caption {
    margin-top: 1.2rem;
    font-size: clamp(14px, 1.8vw, 16px);
    color: rgba(39, 51, 71, 0.7);
}

/* Pullquote block (optional) */
.wysiwyg .wp-block-pullquote {
    border-top: 3px solid var(--color-gold);
    border-bottom: 3px solid var(--color-gold);
    padding: 2rem 0;
    margin: 4rem 0;
    text-align: center;
}

.wysiwyg .wp-block-pullquote blockquote {
    padding: 0;
    margin: 0;
}

.wysiwyg .wp-block-pullquote blockquote::before {
    display: none;
}

@media (max-width: 1024px) {
    .wysiwyg ul {
        max-width: calc(100% - 60px);
    }

    .wysiwyg blockquote {
        margin-inline: 6rem;
        padding-left: 6rem;
    }

    .wysiwyg blockquote::before {
        left: 0;
    }

    .wysiwyg hr {
        margin-block: 9rem;
    }
}

@media (max-width: 767px) {
    .wysiwyg blockquote {
        padding-left: 0;
        padding-right: 0;
    }

    .wysiwyg blockquote::before {
        position: static;
        display: block;
        margin-bottom: 1rem;
    }

    .wysiwyg .alignleft,
    .wysiwyg .alignright {
        float: none;
        margin: 0 auto 1.6rem;
        display: block;
    }
}

/* -------------------------------------------------------------------------
   Demo page — components/wysiwyg/index.html (standalone, full-width strip)
   ------------------------------------------------------------------------- */
body[data-template="wysiwyg"] {
    margin: 0;
}

.wysiwyg-demo {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: clamp(3rem, 6vw, 8rem) clamp(1.6rem, 4vw, 4rem);
    box-sizing: border-box;
}

.wysiwyg-demo__title {
    font-family: var(--primary-font);
    color: var(--color-blue-soft);
    font-size: clamp(28px, 3vw, 44px);
    font-weight: 600;
    line-height: 1.15;
    margin: 0 0 clamp(3rem, 5vw, 5rem);
    letter-spacing: -1px;
}

.wysiwyg-demo .wysiwyg {
    width: 100%;
    max-width: none;
}

/* custom */

a[href="#chatbot"] {
  display: none;
}

.ebook-popup-bg.active,
.ebook-popup.active {
  display: flex;
}

.ebook-popup-bg {
  position: fixed;
  top: 0;
  lefT: 0;
  width: 100%;
  height: 100%;
  background: rgba(0,0,0,.5);
  z-index: 3147483638; 
  display: none;
  cursor: pointer;
  transition: background .5s;
}

.ebook-popup-bg:hover {
  background: rgba(0,0,0,.7);
}

.ebook-popup {
  position: fixed;
  top: 50%;
  left: 50%;
  width: 480px;
  margin-left: -240px;
  height: 560px;
  margin-top: -280px;
  z-index: 3147483639;
  overflow: auto;
  display: flex;
  align-items: center;
  display: none;
}

#_form_112_ {
  margin-top: 0 !important;
}

#_form_112_._inline-form ._form-label,
#_form_112_._inline-form ._form-emailidentifier,
#_form_112_._inline-form ._form-checkbox-option-label,
#_form_112_ ._form_element input[type="text"],
#_form_112_ ._form_element input[type="date"],
#_form_112_ ._form_element select,
#_form_112_ ._form_element textarea:not(.g-recaptcha-response),
#_form_112_._inline-form ._row span:not(.field-required),
#_form_112_._inline-form ._row label,
#_form_112_._inline-form ._submit {
  font-family: var(--primary-font) !important;
}

#_form_112_ ._form_element :is(select) {
  height: 35px;
}

@media screen and (max-width: 667px) {
  .ebook-popup {
    width: auto;
    left: 10px;
    right: 10px;
    height: auto;
    top: 10px;
    bottom: 10px;
    margin: 0;
  }
}