:root {
    --primary: #0d223a;
    --primary-soft: #16324f;
    --accent: #c8a96a;
    --accent-strong: #b38b3e;
    --bg: #f7f5f1;
    --surface: #ffffff;
    --muted: #697384;
    --border: rgba(13, 34, 58, 0.08);
    --shadow: 0 20px 50px rgba(13, 34, 58, 0.08);
}

body {
    font-family: "Manrope", sans-serif;
    background: linear-gradient(180deg, #fbfaf7 0%, #f4f0ea 100%);
    color: var(--primary);
    padding-top: 116px;
}

h1, h2, h3, h4, h5, h6 {
    font-family: "Playfair Display", serif;
    letter-spacing: -0.02em;
}

a {
    color: var(--primary);
    text-decoration: none;
}

.site-header {
    position: relative;
}

.site-header::before {
    content: "";
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 120px;
    z-index: 1025;
    pointer-events: none;
    background: linear-gradient(180deg, rgba(31, 48, 66, 0.98), rgba(31, 48, 66, 0.16));
    mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.9), transparent);
}

.navbar {
    backdrop-filter: blur(18px);
    padding-top: .2rem;
    padding-bottom: .25rem;
    background:
        radial-gradient(circle at 50% 20%, rgba(56, 78, 101, 0.24), transparent 48%),
        linear-gradient(135deg, rgba(30, 47, 65, 0.98) 0%, rgba(33, 51, 70, 0.98) 45%, rgba(30, 47, 65, 0.98) 100%);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: 0 10px 22px rgba(12, 24, 36, 0.22);
}

.navbar-brand img,
.footer-logo {
    height: 96px;
    width: auto;
}

.navbar-brand {
    position: relative;
    z-index: 2;
    margin-top: 2px;
}

.navbar-light .navbar-nav .nav-link {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: .45rem .9rem !important;
    border-radius: 999px;
    font-weight: 700;
    color: #ffffff;
    font-size: 1.02rem;
    letter-spacing: -0.01em;
    transition: color .2s ease, background-color .2s ease, box-shadow .2s ease, text-shadow .2s ease, transform .2s ease;
}

.navbar-light .navbar-nav .nav-link:hover,
.navbar-light .navbar-nav .nav-link:focus {
    color: #ffffff;
    text-shadow: 0 1px 8px rgba(255, 255, 255, 0.2);
}

.navbar-light .navbar-nav .nav-link.active,
.navbar-light .navbar-nav .show > .nav-link {
    color: #ffffff;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0.08));
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.28),
        0 10px 22px rgba(8, 16, 26, 0.18);
    text-shadow:
        0 1px 0 rgba(255, 255, 255, 0.45),
        0 0 10px rgba(255, 255, 255, 0.18);
    transform: translateY(-1px);
}

.navbar-light .navbar-toggler {
    border-color: rgba(255, 255, 255, 0.18);
}

.navbar-light .navbar-toggler-icon {
    filter: invert(1) brightness(2);
}

.btn-gold,
.btn-outline-gold:hover {
    background: linear-gradient(135deg, #cfb277, #b18844);
    color: #fff;
    border: none;
    box-shadow: 0 16px 32px rgba(179, 139, 62, 0.25);
}

.btn-outline-gold {
    border: 1px solid rgba(179, 139, 62, 0.45);
    color: var(--accent-strong);
    background: transparent;
}

.hero-section,
.inner-hero {
    position: relative;
    overflow: hidden;
    padding: 4.2rem 0 3rem;
    background:
        radial-gradient(circle at top right, rgba(200, 169, 106, 0.28), transparent 34%),
        linear-gradient(135deg, #f9f6ef 0%, #eef1f5 100%);
}

.hero-section h1,
.inner-hero h1 {
    font-size: clamp(2.1rem, 4vw, 3.4rem);
    line-height: 1.08;
    margin-bottom: 1rem;
}

.hero-badge {
    display: inline-flex;
    padding: .45rem .85rem;
    border-radius: 999px;
    background: rgba(200, 169, 106, 0.15);
    color: var(--accent-strong);
    font-weight: 700;
    margin-bottom: 1.25rem;
}

.hero-actions,
.hero-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-top: 1.4rem;
}

.stat-chip {
    padding: .7rem .95rem;
    border-radius: 16px;
    background: #fff;
    box-shadow: var(--shadow);
    font-weight: 700;
}

.hero-visual {
    position: relative;
    padding: 1rem 1rem 2rem;
}

.hero-card {
    background: linear-gradient(145deg, #102542, #182f49);
    padding: 1rem;
    border-radius: 24px;
    box-shadow: 0 24px 60px rgba(13, 34, 58, 0.16);
}

.hero-card img,
.post-cover img,
.post-card img {
    width: 100%;
    border-radius: 22px;
    object-fit: cover;
}

.hero-floating {
    position: absolute;
    right: 0;
    bottom: -20px;
    max-width: 280px;
    background: #fff;
    border-radius: 20px;
    padding: 1rem 1.1rem;
    box-shadow: var(--shadow);
}

.hero-card-abstract {
    position: relative;
    min-height: 360px;
    overflow: hidden;
    padding: 0;
    background:
        radial-gradient(circle at top right, rgba(255,255,255,.16), transparent 24%),
        linear-gradient(140deg, #0f2238 0%, #173252 58%, #203e5e 100%);
}

.hero-grid {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px);
    background-size: 42px 42px;
    mask-image: linear-gradient(180deg, rgba(0,0,0,.85), transparent);
}

.hero-logo-lockup {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2.6rem 3rem 2.6rem 10.5rem;
    z-index: 1;
}

.hero-logo-lockup img {
    width: min(72%, 400px);
    max-height: 250px;
    object-fit: contain;
    filter: drop-shadow(0 16px 28px rgba(4, 10, 18, 0.3));
}

.hero-copy-mark {
    position: absolute;
    left: 1.8rem;
    top: 50%;
    transform: translateY(-50%);
    display: grid;
    gap: 1rem;
    z-index: 2;
}

.hero-copy-mark span {
    display: inline-flex;
    width: fit-content;
    padding: .72rem 1.1rem;
    border-radius: 999px;
    background: rgba(255,255,255,.12);
    color: #fff;
    font-weight: 700;
    font-size: 1.05rem;
    letter-spacing: .01em;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
}

.section {
    padding: 3.7rem 0;
}

.section-light {
    background: rgba(255, 255, 255, 0.66);
}

.section-tinted {
    background: linear-gradient(180deg, rgba(13, 34, 58, 0.03) 0%, rgba(200, 169, 106, 0.08) 100%);
}

.section-dark {
    background: linear-gradient(135deg, #102542, #173250);
    color: #fff;
}

.section-map {
    background: linear-gradient(135deg, rgba(13, 34, 58, 0.03), rgba(200, 169, 106, 0.06));
}

.section-heading {
    max-width: 720px;
    margin-bottom: 1.8rem;
}

.section-heading span,
.mini-panel span,
.map-copy span {
    display: inline-block;
    text-transform: uppercase;
    letter-spacing: .14em;
    font-size: .8rem;
    color: var(--accent-strong);
    margin-bottom: .75rem;
    font-weight: 800;
}

.section-heading.light span,
.section-heading.light h2 {
    color: #fff;
}

.content-card,
.feature-list-card,
.service-card,
.icon-card,
.testimonial-card,
.post-card,
.map-copy,
.mini-panel,
.cta-box,
.sticky-side-card,
.contact-form,
.faq-accordion .accordion-item {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 24px;
    box-shadow: var(--shadow);
}

.content-card,
.feature-list-card,
.map-copy,
.cta-box,
.sticky-side-card,
.contact-form {
    padding: 1.6rem;
}

.feature-list-item {
    display: flex;
    gap: 1rem;
    padding: 1rem 0;
    border-bottom: 1px solid rgba(13, 34, 58, 0.08);
}

.feature-list-item:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.feature-list-item i,
.service-icon,
.icon-card i {
    width: 54px;
    height: 54px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 18px;
    background: linear-gradient(135deg, rgba(200, 169, 106, 0.14), rgba(13, 34, 58, 0.06));
    color: var(--accent-strong);
    font-size: 1.4rem;
}

.service-card,
.testimonial-card,
.post-card,
.icon-card {
    padding: 1.35rem;
    height: 100%;
}

.service-card h3,
.post-card h3,
.icon-card h4,
.testimonial-card strong {
    font-family: "Manrope", sans-serif;
    font-size: 1rem;
    font-weight: 800;
}

.service-card a,
.post-card a {
    font-weight: 700;
    color: var(--accent-strong);
}

.process-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
}

.process-grid > div,
.dark-stat {
    border-radius: 24px;
    padding: 1.6rem;
    background: rgba(255, 255, 255, 0.08);
}

.dark-stat {
    height: 100%;
}

.faq-accordion .accordion-item {
    margin-bottom: 1rem;
    overflow: hidden;
}

.faq-accordion .accordion-button {
    font-weight: 800;
    background: #fff;
    box-shadow: none;
}

.faq-accordion .accordion-button:not(.collapsed) {
    color: var(--accent-strong);
    background: rgba(200, 169, 106, 0.08);
}

.post-card {
    padding: 0;
    overflow: hidden;
}

.post-card img {
    height: 180px;
}

.post-card-body {
    padding: 1.25rem;
}

.post-placeholder {
    height: 180px;
    display: flex;
    align-items: end;
    padding: 1.2rem;
    background:
        radial-gradient(circle at top right, rgba(200,169,106,.28), transparent 30%),
        linear-gradient(135deg, #edf2f7, #f8f4ec);
}

.post-placeholder span {
    display: inline-flex;
    padding: .5rem .8rem;
    border-radius: 999px;
    background: rgba(16,37,66,.08);
    color: var(--primary-soft);
    font-weight: 800;
}

.blog-toolbar {
    padding: 1.2rem;
    background: rgba(255,255,255,.8);
    border-radius: 22px;
    border: 1px solid var(--border);
}

.news-hero {
    background:
        radial-gradient(circle at top right, rgba(200, 169, 106, 0.22), transparent 30%),
        linear-gradient(135deg, #f7f5ef 0%, #eef3f7 100%);
}

.news-highlight-list {
    display: flex;
    flex-wrap: wrap;
    gap: .85rem;
    margin-top: 1.3rem;
}

.news-highlight-list span,
.news-kicker {
    display: inline-flex;
    align-items: center;
    padding: .62rem .95rem;
    border-radius: 999px;
    background: rgba(16, 37, 66, 0.08);
    color: var(--primary-soft);
    font-weight: 800;
}

.news-spotlight-card,
.news-empty-state {
    height: 100%;
    padding: 1.65rem;
    border-radius: 24px;
    border: 1px solid rgba(16, 37, 66, 0.1);
    box-shadow: var(--shadow);
}

.news-spotlight-card {
    background: linear-gradient(145deg, #102542, #1b3958);
    color: #fff;
}

.news-spotlight-card span,
.news-empty-state span {
    display: inline-block;
    margin-bottom: .75rem;
    text-transform: uppercase;
    letter-spacing: .14em;
    font-size: .78rem;
    font-weight: 800;
}

.news-spotlight-card span {
    color: rgba(255,255,255,.72);
}

.news-spotlight-card h2,
.news-empty-state h2,
.news-featured-body h2 {
    font-size: clamp(1.6rem, 2.3vw, 2.2rem);
    margin-bottom: 1rem;
}

.news-spotlight-action {
    margin-top: 1.35rem;
    display: flex;
    gap: .9rem;
    align-items: flex-start;
    padding-top: 1.2rem;
    border-top: 1px solid rgba(255,255,255,.12);
}

.news-spotlight-action i {
    font-size: 1.4rem;
    color: var(--accent);
}

.news-featured-card {
    overflow: hidden;
    border-radius: 28px;
    border: 1px solid rgba(16, 37, 66, 0.08);
    box-shadow: var(--shadow);
    background: var(--surface);
}

.news-featured-card img,
.news-featured-placeholder {
    width: 100%;
    height: 100%;
    min-height: 360px;
    object-fit: cover;
}

.news-featured-placeholder {
    display: flex;
    flex-direction: column;
    justify-content: end;
    gap: .4rem;
    padding: 2rem;
    background:
        radial-gradient(circle at top right, rgba(200,169,106,.24), transparent 28%),
        linear-gradient(135deg, #173252, #102542);
    color: #fff;
}

.news-featured-placeholder span {
    text-transform: uppercase;
    letter-spacing: .14em;
    font-size: .76rem;
    opacity: .72;
}

.news-featured-placeholder strong {
    font-size: 1.4rem;
    font-weight: 800;
}

.news-featured-body {
    height: 100%;
    padding: 2rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.news-featured-body p {
    color: var(--muted);
    margin-bottom: 1.35rem;
}

.news-featured-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-bottom: 1.5rem;
    color: var(--muted);
    font-weight: 700;
}

.news-featured-meta span {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
}

.news-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 1.5rem;
    margin-bottom: 1.5rem;
}

.news-search-form {
    width: min(100%, 420px);
    display: flex;
    gap: .8rem;
}

.news-search-form .form-control {
    border-radius: 16px;
    padding: .95rem 1rem;
}

.news-card {
    transition: transform .25s ease, box-shadow .25s ease;
}

.news-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 24px 48px rgba(13, 34, 58, 0.12);
}

.news-placeholder {
    background:
        radial-gradient(circle at top right, rgba(200,169,106,.32), transparent 32%),
        linear-gradient(135deg, #edf3f9, #f8f5ef);
}

.news-empty-state {
    text-align: center;
    background: linear-gradient(180deg, rgba(255,255,255,.95), rgba(245, 247, 250, .95));
}

.news-empty-state span {
    color: var(--accent-strong);
}

.map-frame,
.map-frame iframe {
    min-height: 100%;
    width: 100%;
    height: 100%;
    border: 0;
    border-radius: 24px;
}

.cta-final .cta-box {
    text-align: center;
    background: linear-gradient(135deg, #122944, #193452);
    color: #fff;
}

.site-footer {
    padding: 3rem 0 2rem;
    background: #102542;
    color: rgba(255,255,255,.78);
}

.footer-brand-title {
    font-family: "Playfair Display", serif;
    font-size: 2rem;
    color: #fff;
    margin-bottom: .8rem;
}

.site-footer a {
    color: rgba(255,255,255,.78);
}

.site-footer-bottom {
    margin-top: 2rem;
    padding-top: 1.5rem;
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    border-top: 1px solid rgba(255,255,255,.1);
}

.social-links {
    display: flex;
    gap: .8rem;
}

.social-links a {
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    background: rgba(255,255,255,.08);
}

.whatsapp-float {
    position: fixed;
    right: 18px;
    bottom: 18px;
    width: 60px;
    height: 60px;
    z-index: 99;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #25d366;
    color: #fff;
    font-size: 1.8rem;
    box-shadow: 0 18px 36px rgba(0,0,0,.18);
}

.cookie-consent {
    position: fixed;
    left: 20px;
    bottom: 20px;
    max-width: 420px;
    z-index: 99;
    background: #fff;
    border-radius: 20px;
    padding: 1rem 1.2rem;
    display: flex;
    gap: 1rem;
    align-items: center;
    border: 1px solid var(--border);
    box-shadow: var(--shadow);
}

.alert-stack {
    position: fixed;
    top: 100px;
    left: 0;
    right: 0;
    z-index: 70;
}

.breadcrumb a {
    color: var(--accent-strong);
}

.contact-form .form-control,
.blog-toolbar .form-control,
.blog-toolbar .form-select {
    border-radius: 16px;
    padding: .95rem 1rem;
}

.consent-box {
    display: flex;
    align-items: flex-start;
    font-size: .95rem;
}

.site-search-strip {
    position: relative;
    z-index: 20;
    margin-top: .3rem;
    padding-bottom: 1.4rem;
}

.site-search-form,
.search-summary-card,
.search-empty-state,
.search-result-card {
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid var(--border);
    border-radius: 24px;
    box-shadow: var(--shadow);
}

.site-search-form {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.2rem;
    padding: 1rem 1.1rem 1rem 1.35rem;
}

.site-search-copy {
    display: grid;
    gap: .2rem;
    max-width: 420px;
}

.site-search-copy span,
.search-summary-card span,
.search-empty-state span,
.search-type-pill {
    display: inline-block;
    text-transform: uppercase;
    letter-spacing: .14em;
    font-size: .76rem;
    font-weight: 800;
    color: var(--accent-strong);
}

.site-search-copy strong {
    font-size: .98rem;
    line-height: 1.45;
}

.site-search-input-group {
    flex: 1;
    display: flex;
    align-items: center;
    gap: .8rem;
    padding: .5rem .55rem .5rem 1rem;
    background: #fff;
    border-radius: 18px;
    border: 1px solid rgba(13, 34, 58, 0.08);
}

.site-search-input-group i {
    font-size: 1rem;
    color: var(--accent-strong);
}

.site-search-input-group .form-control {
    border: 0;
    box-shadow: none;
    padding-left: 0;
    padding-right: 0;
}

.site-search-input-group .form-control:focus {
    box-shadow: none;
}

.search-summary-card,
.search-empty-state {
    padding: 1.6rem;
}

.search-summary-card {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
}

.search-summary-card h2,
.search-empty-state h2,
.search-result-card h3 {
    font-family: "Manrope", sans-serif;
    font-weight: 800;
    letter-spacing: -0.02em;
}

.search-summary-card h2 {
    font-size: clamp(1.35rem, 2vw, 1.9rem);
    margin: .45rem 0 .55rem;
}

.search-summary-metric {
    min-width: 140px;
    text-align: center;
    padding: 1rem;
    border-radius: 20px;
    background: linear-gradient(135deg, rgba(200, 169, 106, 0.12), rgba(13, 34, 58, 0.05));
}

.search-summary-metric strong {
    display: block;
    font-size: 2.1rem;
    line-height: 1;
}

.search-group + .search-group {
    margin-top: 3rem;
}

.search-result-card {
    height: 100%;
    padding: 1.35rem;
}

.search-result-card h3 {
    font-size: 1.02rem;
    margin: .8rem 0 .65rem;
}

.search-result-card p {
    color: var(--muted);
    margin-bottom: 1rem;
}

.search-result-card a {
    font-weight: 800;
    color: var(--accent-strong);
}

@media (max-width: 991px) {
    body { padding-top: 106px; }
    .process-grid { grid-template-columns: repeat(2, 1fr); }
    .site-footer-bottom { flex-direction: column; }
    .navbar-brand img { height: 82px; }
    .site-search-form,
    .search-summary-card { flex-direction: column; align-items: stretch; }
    .site-search-copy { max-width: none; }
    .news-toolbar { flex-direction: column; align-items: stretch; }
    .news-search-form { width: 100%; }
    .hero-logo-lockup { padding: 2.1rem; }
    .hero-logo-lockup img { width: min(56%, 300px); max-height: 190px; }
    .hero-copy-mark { left: 1.25rem; gap: .8rem; }
    .hero-copy-mark span { padding: .65rem 1rem; font-size: .98rem; }
}

@media (max-width: 767px) {
    body { padding-top: 94px; }
    .navbar-brand img { height: 68px; }
    .footer-logo { height: 42px; }
    .hero-section, .inner-hero, .section { padding: 2.8rem 0; }
    .process-grid { grid-template-columns: 1fr; }
    .site-header::before { height: 100px; }
    .site-search-strip { margin-top: .2rem; }
    .site-search-form { padding: 1rem; }
    .site-search-input-group { flex-wrap: wrap; }
    .site-search-input-group .form-control { width: 100%; }
    .site-search-input-group .btn { width: 100%; }
    .news-featured-card img,
    .news-featured-placeholder { min-height: 240px; }
    .news-featured-body { padding: 1.5rem; }
    .news-highlight-list { gap: .65rem; }
    .hero-logo-lockup {
        justify-content: flex-end;
        align-items: flex-start;
        padding: 1.3rem 1.1rem 1.3rem 8.3rem;
    }
    .hero-logo-lockup img { width: min(52%, 180px); max-height: 120px; }
    .hero-copy-mark { left: .95rem; gap: .7rem; }
    .hero-copy-mark span { padding: .55rem .9rem; font-size: .92rem; }
    .hero-floating { position: relative; margin: -1.8rem 1rem 0 auto; max-width: 240px; }
    .cookie-consent {
        left: 12px;
        right: 12px;
        bottom: 12px;
        max-width: none;
        flex-direction: column;
        align-items: flex-start;
    }
}
