:root {
    --font-body: "Montserrat", Helvetica, Arial, sans-serif;
    --font-display: "Archivo Black", "Montserrat", Helvetica, Arial, sans-serif;
    --type-title: 40px;
    --type-subtitle: 22px;
    --type-body: 16px;
    --type-label: 12px;
    --line-title: 1.12;
    --line-subtitle: 1.32;
    --line-body: 1.65;
    --btn-height: 44px;
    --btn-x: 18px;
    --btn-gap: 8px;
    --surface-border: #dce5f0;
    --surface-shadow: 0 16px 40px rgba(13, 32, 55, 0.12);
    --surface-shadow-soft: 0 10px 28px rgba(13, 32, 55, 0.08);
    --interactive-shadow: 0 12px 24px rgba(13, 32, 55, 0.16);
    --brand-shadow: 0 10px 22px rgba(11, 108, 214, 0.22);
    --focus-ring: 0 0 0 4px rgba(11, 108, 214, 0.16);
}

html {
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

body,
button,
input,
select,
textarea,
.btn,
.form-control,
.form-select,
.dropdown-menu,
.modal,
.navbar,
.accordion,
.card,
.projects-page,
.financing-page,
#header,
#content,
.counter,
.newtext {
    font-family: var(--font-body);
    letter-spacing: 0;
}

h1,
h2,
h3,
.title,
#content .title,
#banner .projectName p,
#header .title,
.projects-intro h1,
.project-card h2,
.projects-empty h2,
.financing-copy h1,
.financing-guidance h2,
.form-heading h2,
.counter,
.counter span {
    font-family: var(--font-display);
    font-size: var(--type-title) !important;
    line-height: var(--line-title);
    font-weight: 400;
    letter-spacing: 0;
}

h4,
h5,
h6,
.subTitle,
#content .subtitle,
#toolsSearch .subTitle,
.project-subtitle,
.financing-lead,
.financing-hero-card h2,
.financing-step h3,
.location-recommendation-modal .modal-title,
.location-project-preview h5 {
    font-family: var(--font-body);
    font-size: var(--type-subtitle) !important;
    line-height: var(--line-subtitle);
    font-weight: 700;
    letter-spacing: 0;
}

body,
p,
li,
.newtext,
.subText,
.information,
.project-description,
.project-address,
.financing-hero-card p,
.location-recommendation-description,
.location-project-preview p {
    font-size: var(--type-body);
    line-height: var(--line-body);
}

.newtext {
    font-family: var(--font-body);
    font-size: var(--type-body) !important;
    line-height: var(--line-body);
}

label,
.form-label,
small,
.small,
.badge,
.project-kind,
.project-city,
.projects-eyebrow,
.section-kicker,
.financing-eyebrow,
.projects-summary span,
.location-modal-kicker,
.form-footer p,
#parallax1 .newtext,
#parallax2 .newtext,
.counter + h5 {
    font-family: var(--font-body);
    font-size: var(--type-label) !important;
    line-height: 1.35;
    font-weight: 700;
    letter-spacing: 0;
}

.btn:not(.btn-close):not(.navbar-toggler) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--btn-gap);
    min-height: var(--btn-height);
    padding: 0 var(--btn-x);
    border-radius: 8px;
    font-family: var(--font-body);
    font-size: var(--type-body);
    line-height: 1.2;
    font-weight: 700;
    letter-spacing: 0;
    text-align: center;
    white-space: normal;
    border-width: 1px;
    box-shadow: 0 6px 14px rgba(13, 32, 55, 0.08);
    transition: transform 160ms ease, box-shadow 160ms ease, background-color 160ms ease, border-color 160ms ease, color 160ms ease;
}

.btn:not(.btn-close):not(.navbar-toggler):hover {
    transform: translateY(-1px);
    box-shadow: var(--interactive-shadow);
}

.btn-concasa:hover,
.btn-concasa-dark:hover {
    box-shadow: var(--brand-shadow);
}

.btn:not(.btn-close):not(.navbar-toggler):active {
    transform: translateY(0);
    box-shadow: 0 4px 10px rgba(13, 32, 55, 0.12);
}

.btn:focus-visible,
.form-control:focus,
.form-select:focus,
.navbar-toggler:focus-visible {
    box-shadow: var(--focus-ring);
    outline: 0;
}

.btn-concasa {
    border-color: rgba(255, 255, 255, 0.78);
    background-image: linear-gradient(180deg, #0e78dc 0%, var(--color6) 100%);
}

.btn-concasa-dark {
    background-image: linear-gradient(180deg, #0032d8 0%, var(--color1) 100%);
}

.btn-sm:not(.btn-close) {
    min-height: 34px;
    padding: 0 11px;
    border-radius: 7px;
    font-size: var(--type-label);
}

.btn i {
    flex: 0 0 auto;
    font-size: 1.08em;
    line-height: 1;
}

.btn-group > .btn {
    flex: 1 1 0;
}

.home-action-buttons,
.toolProject-actions,
.project-actions,
.location-modal-actions {
    gap: 10px;
}

.home-action-buttons {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
}

.home-action-buttons .btn {
    width: 100%;
}

.form-control,
.form-select {
    min-height: 44px;
    border-color: #cfd8e3;
    border-radius: 8px;
    color: #172432;
    background-color: rgba(255, 255, 255, 0.96);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.72);
    transition: border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease;
}

.form-control::placeholder {
    color: #8a96a5;
}

.form-control:focus,
.form-select:focus {
    border-color: var(--color6);
    background-color: #fff;
}

#button-addon2 {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

.modal-content,
.dropdown-menu {
    border: 1px solid var(--surface-border);
    border-radius: 8px;
    box-shadow: var(--surface-shadow);
}

.modal-header,
.modal-footer {
    border-color: #e7edf5;
}

#header .tool,
#capture,
.project-card,
.financing-hero-card,
.financing-form-card,
.location-recommendation-modal {
    border: 1px solid rgba(220, 229, 240, 0.82);
    box-shadow: var(--surface-shadow);
}

#header .tool {
    background-color: rgba(255, 255, 255, 0.94);
    backdrop-filter: blur(10px);
}

#capture {
    background-color: rgba(23, 23, 23, 0.68);
    backdrop-filter: blur(8px);
}

#header .tool h4,
#capture .title {
    margin-bottom: 18px;
}

.home-action-buttons {
    margin-top: 18px;
}

.toolProject-actions,
.project-actions,
.location-modal-actions,
.form-footer {
    margin-top: 18px;
}

.toolProject-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    max-width: 100%;
}

.toolProject-actions .btn {
    min-width: 0;
}

.toolProject-action-primary {
    color: var(--color6);
    border-color: rgba(255, 255, 255, 0.96);
    background-color: #fff;
    background-image: none;
    box-shadow: 0 10px 20px rgba(13, 32, 55, 0.14);
}

.toolProject-action-primary:hover,
.toolProject-action-primary:focus-visible {
    color: var(--color1);
    border-color: #fff;
    background-color: #fff;
    background-image: none;
}

.toolProject-action-secondary {
    border-color: rgba(255, 255, 255, 0.76);
    background-color: rgba(255, 255, 255, 0.08);
    background-image: none;
    box-shadow: none;
}

.toolProject-action-secondary:hover,
.toolProject-action-secondary:focus-visible {
    border-color: #fff;
    background-color: rgba(255, 255, 255, 0.16);
    background-image: none;
}

#PMainLogo,
#GallerySection #imgPreview,
#GalleryCon .item img,
.project-media > img,
.about-logo {
    box-shadow: var(--surface-shadow-soft);
}

#PMainLogo,
#GallerySection #imgPreview,
#GalleryCon .item img,
.project-media,
.project-logo,
.about-logo {
    border-radius: 8px;
}

.project-card,
.financing-form-card,
.financing-hero-card {
    transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

.project-card:hover,
.financing-form-card:hover,
.financing-hero-card:hover {
    transform: translateY(-2px);
    border-color: #cbd9eb;
    box-shadow: 0 22px 52px rgba(13, 32, 55, 0.14);
}

.projects-eyebrow,
.section-kicker,
.financing-eyebrow,
.project-kind,
.badge,
.location-modal-kicker {
    box-shadow: 0 5px 12px rgba(13, 32, 55, 0.06);
}

.counter {
    text-shadow: 0 8px 26px rgba(0, 0, 0, 0.14);
}

#toolsSearch,
.financing-hero,
.bgdark {
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

footer .footer_logo img {
    filter: drop-shadow(0 10px 18px rgba(0, 0, 0, 0.18));
}

footer ul.links li a,
footer a {
    transition: color 160ms ease, transform 160ms ease;
}

.btn-concasa i,
.btn-concasa-dark i {
    color: currentColor;
}

footer,
footer p,
footer a,
footer li,
footer span {
    font-family: var(--font-body);
    font-size: var(--type-body);
    line-height: var(--line-body);
    letter-spacing: 0;
}

footer h1,
footer h2,
footer h3,
footer h4,
footer h5 {
    font-family: var(--font-body);
    font-size: var(--type-subtitle) !important;
    line-height: var(--line-subtitle);
    font-weight: 700;
    letter-spacing: 0;
}

footer .copyright p {
    font-size: var(--type-label) !important;
    line-height: 1.35;
}

@media only screen and (max-width: 575.98px) {
    :root {
        --type-title: 30px;
        --type-subtitle: 20px;
        --type-body: 15px;
        --type-label: 11px;
        --btn-height: 42px;
        --btn-x: 14px;
    }

    .home-action-buttons {
        grid-template-columns: 1fr;
    }

    .toolProject-actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
        width: 100%;
        margin-top: 16px;
    }

    .toolProject-actions .btn {
        width: 100%;
        min-height: 38px;
        padding-inline: 10px;
        border-radius: 7px;
        font-size: 13px;
        line-height: 1.15;
    }

    .toolProject-action-primary {
        grid-column: 1 / -1;
        min-height: 44px;
        font-size: 15px;
    }
}

@media only screen and (max-width: 359.98px) {
    .toolProject-actions {
        grid-template-columns: 1fr;
    }
}
