/* ── Shared section utilities ──────────────────────────────── */

.section {
    padding: var(--space-16) 0;
}
@media (min-width: 768px)  { .section { padding: var(--space-20) 0; } }
@media (min-width: 1024px) { .section { padding: var(--space-24) 0; } }

/* Offset in-page anchor targets so the fixed navbar doesn't overlap */
section[id] { scroll-margin-top: var(--nav-height); }

/* Honeypot — visually hidden field; bots fill it, humans don't */
.hp {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
    opacity: 0;
}

/* Turnstile widget spacing */
.cf-turnstile { margin-bottom: var(--space-4); }

/* Scroll-reveal — gated behind .js so no-JS users still see content */
.js .reveal {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}
.js .reveal.is-visible {
    opacity: 1;
    transform: none;
}
@media (prefers-reduced-motion: reduce) {
    .js .reveal { opacity: 1; transform: none; transition: none; }
}

.section--light  { background: var(--bg); }
.section--warm   { background: var(--bg-warm); }
.section--subtle { background: #F9F8F6; }
.section--navy   { background: var(--bg-navy); }
.section--cta    {
    background: var(--bg-navy);
    padding: var(--space-24) 0;
}

.section-inner {
    max-width: var(--max-w);
    margin: 0 auto;
    padding: 0 var(--space-6);
}

.section-inner--narrow {
    max-width: var(--max-w-narrow);
}

.section-inner--center {
    text-align: center;
}

.section-label {
    font-family: var(--font-display);
    font-size: 0.875rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #1E3A5F;
    margin-bottom: var(--space-3);
}

.section-label--gold  { color: var(--gold); }
.section-label--light { color: var(--gold-light); }

.section-title {
    font-family: var(--font-display);
    font-size: 3rem;
    font-weight: 700;
    color: var(--text);
    line-height: 1.05;
    letter-spacing: normal;
    max-width: 18em;
    margin-bottom: var(--space-8);
}

.section-title--light { color: var(--text-inv); }
.section-title--xl    { font-size: clamp(2.25rem, 5vw, 3.75rem); font-weight: 800; }

.section-lead {
    font-size: var(--text-lg);
    color: var(--text-2);
    line-height: 1.75;
    max-width: 60ch;
    margin-bottom: var(--space-8);
}

.section-lead--light { color: var(--text-inv-2); }

.section-sub {
    font-size: var(--text-lg);
    color: var(--muted);
    max-width: 65ch;
    margin-bottom: var(--space-8);
    line-height: 1.7;
}

.section-action {
    margin-top: var(--space-12);
    text-align: center;
}

/* ── Buttons ───────────────────────────────────────────────── */

.btn-primary {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    background: var(--accent);
    color: var(--text-inv);
    text-decoration: none;
    font-size: var(--text-sm);
    font-weight: 600;
    letter-spacing: 0.02em;
    padding: 0.7rem 1.5rem;
    border-radius: var(--radius);
    border: none;
    transition: background 0.15s, transform 0.1s;
    cursor: pointer;
    white-space: nowrap;
}

.btn-primary:hover   { background: var(--accent-hover); }
.btn-primary:active  { transform: translateY(1px); }

.btn-primary--large  { padding: 0.9rem 2rem; font-size: var(--text-base); }

.btn-ghost {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    background: transparent;
    color: var(--text-inv);
    text-decoration: none;
    font-size: var(--text-sm);
    font-weight: 600;
    letter-spacing: 0.02em;
    padding: 0.7rem 1.5rem;
    border-radius: var(--radius);
    border: 1px solid oklch(50% 0.05 252);
    transition: background 0.15s, border-color 0.15s;
    white-space: nowrap;
}

.btn-ghost:hover      { background: oklch(30% 0.05 252 / 0.6); border-color: oklch(60% 0.05 252); }
.btn-ghost--large     { padding: 0.9rem 2rem; font-size: var(--text-base); }

.btn-outline {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    background: transparent;
    color: var(--accent);
    text-decoration: none;
    font-size: var(--text-sm);
    font-weight: 600;
    letter-spacing: 0.02em;
    padding: 0.7rem 1.5rem;
    border-radius: var(--radius);
    border: 1px solid var(--accent);
    transition: background 0.15s, color 0.15s;
    white-space: nowrap;
    cursor: pointer;
}

.btn-outline:hover { background: var(--accent-faint); }

.btn-gold {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    background: #B8956C;
    color: #F9F8F6;
    text-decoration: none;
    font-size: 0.875rem;
    font-weight: 600;
    padding: 0.75rem 2rem;
    border-radius: 6px;
    border: none;
    transition: background 0.15s, transform 0.1s;
    cursor: pointer;
    white-space: nowrap;
}

.btn-gold:hover  { background: #a07d58; }
.btn-gold:active { transform: translateY(1px); }

/* ── Hero ──────────────────────────────────────────────────── */

.hero {
    position: relative;
    background: var(--bg-navy);
    height: 100vh;
    display: flex;
    align-items: flex-end;
    overflow: hidden;
}

.hero-video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    z-index: 0;
}

.hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to bottom,
        oklch(18% 0.038 252 / 0.2) 0%,
        oklch(18% 0.038 252 / 0.45) 60%,
        oklch(18% 0.038 252 / 0.80) 100%
    );
    z-index: 1;
}

.hero-inner {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: var(--max-w);
    margin: 0 auto;
    padding: 0 var(--space-6) var(--space-16);
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: var(--space-8);
}

.hero-left {
    flex: 1;
    min-width: 0;
}

.hero-right {
    flex-shrink: 0;
}

.hero-title {
    font-family: var(--font-display);
    font-size: clamp(2.5rem, 6vw, 3.75rem);
    font-weight: 800;
    color: #ffffff;
    line-height: 1.05;
    letter-spacing: normal;
    margin-bottom: var(--space-4);
    max-width: 16em;
}

.hero-title-accent {
    color: #ffffff;
}

.hero-sub {
    font-size: 1.25rem;
    color: rgba(255, 255, 255, 0.9);
    line-height: 1.4;
    max-width: 52ch;
}

.hero-cta {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    background: #B8956C;
    color: #F9F8F6;
    text-decoration: none;
    font-size: 1.125rem;
    font-weight: 700;
    letter-spacing: normal;
    padding: 1.125rem 2.25rem;
    border-radius: 6px;
    transition: background 0.15s, transform 0.1s;
    white-space: nowrap;
}

.hero-cta:hover  { background: #a07d58; }
.hero-cta:active { transform: translateY(1px); }

@media (max-width: 680px) {
    .hero { height: 100vh; }
    .hero-inner {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--space-6);
    }
}

/* ── Page Heros ────────────────────────────────────────────── */

.page-hero {
    padding: var(--space-16) 0;
}

.page-hero--navy {
    background: var(--bg-navy);
    background-image:
        radial-gradient(ellipse 60% 80% at 80% 50%, oklch(28% 0.08 252) 0%, transparent 70%);
}

.page-hero--light {
    background: var(--bg-warm);
}

.page-hero-inner {
    max-width: var(--max-w);
    margin: 0 auto;
    padding: var(--space-12) var(--space-6);
}

.page-title {
    font-family: var(--font-display);
    font-size: var(--text-4xl);
    font-weight: 800;
    color: var(--text);
    line-height: 1.1;
    letter-spacing: normal;
    margin-bottom: var(--space-4);
}

.page-title--light { color: var(--text-inv); }

.page-lead {
    font-size: var(--text-lg);
    color: var(--text-2);
    line-height: 1.75;
    max-width: 60ch;
}

.page-lead--light { color: var(--text-inv-2); }

/* ── CTA Section ───────────────────────────────────────────── */

.cta-title {
    font-family: var(--font-display);
    font-size: var(--text-3xl);
    font-weight: 700;
    color: var(--text-inv);
    line-height: 1.2;
    letter-spacing: -0.01em;
    margin-bottom: var(--space-4);
    max-width: 20em;
    margin-left: auto;
    margin-right: auto;
}

.cta-sub {
    font-size: var(--text-lg);
    color: var(--text-inv-2);
    line-height: 1.7;
    max-width: 55ch;
    margin: 0 auto var(--space-8);
}

.cta-actions {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-4);
    flex-wrap: wrap;
}

/* ── Benefits Grid ─────────────────────────────────────────── */

.benefits-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
}

.benefit {
    padding: 2rem;
    background: #ffffff;
    border: 2px solid rgb(229, 231, 235);
    border-radius: 24px;
    transition: box-shadow 0.2s;
}

.benefit:hover {
    box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
}

.benefit-icon {
    width: 64px;
    height: 64px;
    background: #1E3A5F;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    margin-bottom: 1rem;
}

.benefit h3 {
    font-size: 1.5rem;
    font-weight: 700;
    color: rgb(107, 114, 128);
    margin-bottom: 0.5rem;
}

.benefit p {
    font-size: 1rem;
    color: rgb(75, 85, 99);
    line-height: 1.5;
}

@media (max-width: 1024px) {
    .benefits-grid { grid-template-columns: repeat(2, 1fr); }
}

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

/* ── Program cards (home) ──────────────────────────────────── */

.program-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: var(--space-6);
    margin-bottom: var(--space-12);
}

.program-card {
    background: oklch(28% 0.07 252);
    border-radius: var(--radius-md);
    padding: var(--space-6);
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.program-n {
    font-family: var(--font-display);
    font-size: var(--text-2xl);
    font-weight: 600;
    color: var(--gold);
    letter-spacing: -0.01em;
}

.program-l {
    font-size: var(--text-sm);
    color: var(--muted-inv);
    line-height: 1.5;
}

.program-cta {
    text-align: left;
}

/* ── Steps row ─────────────────────────────────────────────── */

.steps-row {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: var(--space-6);
    position: relative;
}

.steps-row::before {
    content: '';
    position: absolute;
    top: 1.4rem;
    left: 2rem;
    right: 2rem;
    height: 1px;
    background: var(--border-2);
}

.step {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    padding-top: var(--space-4);
    position: relative;
}

.step-n {
    font-family: var(--font-display);
    font-size: var(--text-sm);
    font-weight: 700;
    color: var(--accent);
    letter-spacing: 0.08em;
    background: var(--bg);
    position: relative;
    z-index: 1;
    width: fit-content;
    padding-right: var(--space-2);
}

.step h3 {
    font-family: var(--font-display);
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--text);
    letter-spacing: 0.02em;
}

.step p {
    font-size: var(--text-xs);
    color: var(--text-2);
    line-height: 1.6;
}

@media (max-width: 860px) {
    .steps-row {
        grid-template-columns: repeat(3, 1fr);
    }
    .steps-row::before { display: none; }
}

@media (max-width: 540px) {
    .steps-row { grid-template-columns: 1fr 1fr; }
}

/* ── Property Cards (home) ─────────────────────────────────── */

.props-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: var(--space-6);
}

.prop-card {
    background: var(--bg);
    border-radius: var(--radius-md);
    overflow: hidden;
    border: 1px solid var(--border);
    transition: box-shadow 0.2s;
}

.prop-card:hover {
    box-shadow: 0 4px 20px oklch(40% 0.08 252 / 0.1);
}

.prop-img {
    height: 200px;
}

/* CSS gradient stand-ins for property images */
.prop-img--1 { background: linear-gradient(135deg, oklch(40% 0.12 252) 0%, oklch(50% 0.10 210) 100%); }
.prop-img--2 { background: linear-gradient(135deg, oklch(38% 0.10 230) 0%, oklch(52% 0.08 185) 100%); }
.prop-img--3 { background: linear-gradient(135deg, oklch(55% 0.12 200) 0%, oklch(42% 0.10 240) 100%); }
.prop-img--4 { background: linear-gradient(135deg, oklch(60% 0.10 72)  0%, oklch(44% 0.12 252) 100%); }
.prop-img--5 { background: linear-gradient(135deg, oklch(52% 0.14 210) 0%, oklch(38% 0.10 250) 100%); }
.prop-img--6 { background: linear-gradient(135deg, oklch(48% 0.08 145) 0%, oklch(36% 0.10 190) 100%); }

.prop-body {
    padding: var(--space-6);
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.prop-location {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    font-size: var(--text-xs);
    color: var(--muted);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-weight: 500;
}

.prop-title {
    font-family: var(--font-display);
    font-size: var(--text-base);
    font-weight: 600;
    color: var(--text);
    letter-spacing: 0.01em;
}

.prop-specs {
    display: flex;
    gap: var(--space-4);
    flex-wrap: wrap;
}

.prop-specs span {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: var(--text-xs);
    color: var(--muted);
    font-weight: 500;
}

.prop-price {
    font-family: var(--font-display);
    font-size: var(--text-xl);
    font-weight: 600;
    color: var(--accent);
    letter-spacing: -0.01em;
}

.prop-cta {
    display: inline-block;
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--accent);
    text-decoration: none;
    letter-spacing: 0.02em;
    padding: var(--space-2) 0;
    transition: color 0.15s;
}

.prop-cta:hover { color: var(--accent-hover); }

/* ── FAQ ───────────────────────────────────────────────────── */

.faq-list {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.faq-item {
    background: #ffffff;
    border: 1px solid rgb(229, 231, 235);
    border-radius: 0.5rem;
    overflow: hidden;
    transition: border-color 0.2s;
}

.faq-item:hover {
    border-color: rgba(30, 58, 95, 0.3);
}

.faq-q {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    background: none;
    border: none;
    text-align: left;
    padding: 1.25rem 1.5rem;
    font-family: var(--font-body);
    font-size: var(--text-base);
    font-weight: 600;
    color: #6B7280;
    cursor: pointer;
    transition: color 0.15s;
}

.faq-q:hover { color: #1E3A5F; }

.faq-chevron {
    flex-shrink: 0;
    color: var(--muted);
    transition: transform 0.2s;
}

.faq-icon-circle {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: rgba(30, 58, 95, 0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: #1E3A5F;
}

.faq-icon-circle span {
    display: flex;
    align-items: center;
    justify-content: center;
}

.faq-a {
    padding: 0 1.5rem 1.25rem;
}

.faq-a p {
    font-size: var(--text-sm);
    color: rgb(75, 85, 99);
    line-height: 1.75;
}

/* ── Two-col section ───────────────────────────────────────── */

.two-col {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: var(--space-16);
    align-items: start;
}

.two-col-text p {
    font-size: var(--text-base);
    color: var(--text-2);
    line-height: 1.75;
    max-width: 60ch;
    margin-bottom: var(--space-4);
}

.two-col-text .section-title {
    font-size: var(--text-2xl);
    margin-bottom: var(--space-6);
}

.two-col-stats {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    position: sticky;
    top: calc(var(--nav-height) + var(--space-6));
}

.stat-box {
    background: var(--accent-faint);
    border-radius: var(--radius-md);
    padding: var(--space-5, 1.25rem) var(--space-6);
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

.stat-n {
    font-family: var(--font-display);
    font-size: var(--text-2xl);
    font-weight: 600;
    color: var(--accent);
    letter-spacing: -0.01em;
}

.stat-l {
    font-size: var(--text-sm);
    color: var(--text-2);
    line-height: 1.5;
}

@media (max-width: 860px) {
    .two-col {
        grid-template-columns: 1fr;
    }
    .two-col-stats { position: static; flex-direction: row; flex-wrap: wrap; }
    .stat-box { flex: 1; min-width: 160px; }
}

/* ── Requirement list ──────────────────────────────────────── */

.req-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
}

.req-item {
    display: flex;
    align-items: flex-start;
    gap: var(--space-4);
}

.req-check {
    color: var(--success);
    flex-shrink: 0;
    margin-top: 2px;
}

.req-item strong {
    display: block;
    font-size: var(--text-base);
    font-weight: 600;
    color: var(--text);
    margin-bottom: var(--space-1);
}

.req-item p {
    font-size: var(--text-sm);
    color: var(--text-2);
    line-height: 1.6;
    margin: 0;
}

/* ── Tier cards ────────────────────────────────────────────── */

.tier-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: var(--space-6);
    margin-bottom: var(--space-12);
}

.tier-card {
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    padding: var(--space-8);
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    position: relative;
}

.tier-card--featured {
    background: var(--accent-faint);
    border-color: var(--accent);
}

.tier-badge {
    position: absolute;
    top: -1px;
    right: var(--space-6);
    background: var(--accent);
    color: var(--text-inv);
    font-size: var(--text-xs);
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: var(--space-1) var(--space-3);
    border-radius: 0 0 var(--radius) var(--radius);
}

.tier-price {
    font-family: var(--font-display);
    font-size: var(--text-3xl);
    font-weight: 700;
    color: var(--accent);
    letter-spacing: -0.02em;
}

.tier-name {
    font-family: var(--font-display);
    font-size: var(--text-base);
    font-weight: 600;
    color: var(--text);
    letter-spacing: 0.01em;
}

.tier-desc {
    font-size: var(--text-sm);
    color: var(--text-2);
    line-height: 1.7;
}

.tier-features {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    margin-bottom: var(--space-2);
}

.tier-features li {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-sm);
    color: var(--text-2);
}

.tier-features iconify-icon {
    color: var(--success);
    flex-shrink: 0;
}

/* ── Services grid ─────────────────────────────────────────── */

.services-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: var(--space-6);
}

.service-item {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.service-icon {
    width: 52px;
    height: 52px;
    background: oklch(90% 0.035 252);
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--accent);
}

.service-item h3 {
    font-family: var(--font-display);
    font-size: var(--text-base);
    font-weight: 600;
    color: var(--text);
    letter-spacing: 0.01em;
}

.service-item p {
    font-size: var(--text-sm);
    color: var(--text-2);
    line-height: 1.7;
}

/* ── Analysis / market stats ───────────────────────────────── */

.analysis-grid, .market-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: var(--space-4);
    margin-top: var(--space-8);
}

.analysis-card, .market-stat {
    background: var(--accent-faint);
    border-radius: var(--radius-md);
    padding: var(--space-6);
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.analysis-n, .market-n {
    font-family: var(--font-display);
    font-size: var(--text-2xl);
    font-weight: 700;
    color: var(--accent);
    letter-spacing: -0.02em;
}

.analysis-l, .market-l {
    font-size: var(--text-sm);
    color: var(--text-2);
    line-height: 1.5;
}

/* ── Process steps (process page) ─────────────────────────── */

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

.process-step {
    display: grid;
    grid-template-columns: 80px 1fr;
    gap: var(--space-6);
    padding: var(--space-8) 0;
    border-bottom: 1px solid var(--border);
    align-items: start;
}

.process-step:last-child { border-bottom: none; }

.process-step-num {
    font-family: var(--font-display);
    font-size: var(--text-3xl);
    font-weight: 700;
    color: var(--gold);
    letter-spacing: -0.02em;
    line-height: 1;
    padding-top: 4px;
}

.process-step-body h2 {
    font-family: var(--font-display);
    font-size: var(--text-xl);
    font-weight: 600;
    color: var(--text);
    letter-spacing: 0.01em;
    margin-bottom: var(--space-3);
}

.process-step-body p {
    font-size: var(--text-base);
    color: var(--text-2);
    line-height: 1.75;
    max-width: 60ch;
}

.process-step-detail {
    display: flex;
    gap: var(--space-3);
    flex-wrap: wrap;
    margin-top: var(--space-4);
}

.process-step-tag {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    background: var(--accent-faint);
    color: var(--accent);
    font-size: var(--text-xs);
    font-weight: 600;
    letter-spacing: 0.04em;
    padding: var(--space-1) var(--space-3);
    border-radius: 100px;
}

@media (max-width: 540px) {
    .process-step { grid-template-columns: 60px 1fr; gap: var(--space-4); }
    .process-step-num { font-size: var(--text-2xl); }
}

/* ── Aftercare / post-visa ─────────────────────────────────── */

.aftercare-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: var(--space-8);
}

.aftercare-item {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.aftercare-icon {
    color: var(--accent);
}

.aftercare-item h3 {
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 600;
    color: var(--text);
    letter-spacing: 0.01em;
}

.aftercare-item p {
    font-size: var(--text-sm);
    color: var(--text-2);
    line-height: 1.7;
}

/* ── Pillars (Why Greece) ──────────────────────────────────── */

.pillars-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: var(--space-8);
}

.pillar {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.pillar-icon {
    width: 60px;
    height: 60px;
    background: var(--accent-faint);
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--accent);
}

.pillar h3 {
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 600;
    color: var(--text);
    letter-spacing: 0.01em;
}

.pillar p {
    font-size: var(--text-sm);
    color: var(--text-2);
    line-height: 1.75;
}

/* ── Athens facts ──────────────────────────────────────────── */

.athens-facts {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-8);
    margin-top: var(--space-8);
}

.athens-fact {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.athens-fact-n {
    font-family: var(--font-display);
    font-size: var(--text-3xl);
    font-weight: 700;
    color: var(--gold);
    letter-spacing: -0.02em;
}

.athens-fact-l {
    font-size: var(--text-sm);
    color: var(--muted-inv);
    line-height: 1.5;
}

@media (max-width: 680px) {
    .athens-facts { grid-template-columns: 1fr 1fr; }
}

/* ── Properties (full page) ────────────────────────────────── */

.props-filter-bar {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    flex-wrap: wrap;
    margin-bottom: var(--space-8);
    padding-bottom: var(--space-6);
    border-bottom: 1px solid var(--border);
}

.filter-btn {
    background: none;
    border: 1px solid var(--border);
    color: var(--text-2);
    font-size: var(--text-sm);
    font-weight: 500;
    padding: var(--space-2) var(--space-4);
    border-radius: 100px;
    cursor: pointer;
    transition: all 0.15s;
    white-space: nowrap;
}

.filter-btn:hover     { border-color: var(--accent); color: var(--accent); }
.filter-btn.active    { background: var(--accent); border-color: var(--accent); color: var(--text-inv); }

.props-count {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin-left: auto;
    font-size: var(--text-sm);
    color: var(--muted);
    font-weight: 500;
}

.props-listing {
    display: flex;
    flex-direction: column;
    gap: var(--space-8);
}

.prop-full-card {
    display: grid;
    grid-template-columns: 360px 1fr;
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    overflow: hidden;
    transition: box-shadow 0.2s;
}

.prop-full-card:hover {
    box-shadow: 0 4px 24px oklch(40% 0.08 252 / 0.1);
}

.prop-full-img {
    min-height: 260px;
}

.prop-full-body {
    padding: var(--space-8);
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.prop-full-meta {
    display: flex;
    align-items: center;
    gap: var(--space-3);
}

.prop-badge {
    background: oklch(88% 0.08 145);
    color: oklch(32% 0.12 145);
    font-size: var(--text-xs);
    font-weight: 600;
    letter-spacing: 0.04em;
    padding: var(--space-1) var(--space-3);
    border-radius: 100px;
}

.prop-type {
    font-size: var(--text-xs);
    color: var(--muted);
    font-weight: 500;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.prop-full-title {
    font-family: var(--font-display);
    font-size: var(--text-2xl);
    font-weight: 600;
    color: var(--text);
    letter-spacing: -0.01em;
    line-height: 1.2;
}

.prop-full-location {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: var(--text-sm);
    color: var(--muted);
    font-weight: 500;
}

.prop-full-desc {
    font-size: var(--text-sm);
    color: var(--text-2);
    line-height: 1.75;
    max-width: 65ch;
}

.prop-full-specs {
    display: flex;
    gap: var(--space-4);
    flex-wrap: wrap;
}

.prop-full-specs span {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: var(--text-sm);
    color: var(--text-2);
    font-weight: 500;
}

.prop-full-features {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.prop-full-features span {
    background: var(--bg-warm);
    color: var(--text-2);
    font-size: var(--text-xs);
    font-weight: 500;
    padding: var(--space-1) var(--space-3);
    border-radius: 100px;
}

.prop-full-footer {
    display: flex;
    align-items: center;
    gap: var(--space-6);
    margin-top: auto;
    padding-top: var(--space-4);
    border-top: 1px solid var(--border);
}

.prop-full-price {
    font-family: var(--font-display);
    font-size: var(--text-2xl);
    font-weight: 700;
    color: var(--accent);
    letter-spacing: -0.02em;
}

@media (max-width: 860px) {
    .prop-full-card {
        grid-template-columns: 1fr;
    }
    .prop-full-img { min-height: 220px; }
}

/* ── Contact page ──────────────────────────────────────────── */

.contact-layout {
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: var(--space-16);
    align-items: start;
}

.contact-form-card {
    background: #ffffff;
    border: 1px solid rgb(229, 231, 235);
    border-radius: 0.75rem;
    padding: 1.5rem;
}

.contact-form-card-title {
    font-family: var(--font-display);
    font-size: 1.5rem;
    font-weight: 700;
    color: #6B7280;
    margin-bottom: 0.5rem;
}

.contact-form-title {
    font-family: var(--font-display);
    font-size: 1.875rem;
    font-weight: 700;
    color: #2D3748;
    letter-spacing: -0.01em;
    margin-bottom: var(--space-2);
}

.contact-bottom-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-4);
}

.contact-info-card--half {
    padding: 1.25rem;
}

.contact-info-card--half h3 {
    font-size: 1.25rem;
}

.quick-contact-btns {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

.quick-contact-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.625rem 1rem;
    border-radius: 0.5rem;
    font-weight: 600;
    font-size: var(--text-sm);
    text-decoration: none;
    transition: opacity 0.2s;
}

.quick-contact-btn:hover { opacity: 0.85; }

.quick-contact-btn--whatsapp {
    background: #1E3A5F;
    color: #ffffff;
}

.quick-contact-btn--telegram {
    background: #1E3A5F;
    color: #ffffff;
}

.btn-outline {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.625rem 1.25rem;
    border: 1px solid #1E3A5F;
    border-radius: 0.5rem;
    color: #1E3A5F;
    font-weight: 600;
    font-size: var(--text-sm);
    text-decoration: none;
    transition: background 0.2s, color 0.2s;
}

.btn-outline:hover {
    background: #1E3A5F;
    color: #ffffff;
}

@media (min-width: 640px) {
    .contact-form-title { font-size: 2.25rem; }
}

@media (min-width: 768px) {
    .contact-form-title { font-size: 3rem; }
}

.contact-form-sub {
    font-size: var(--text-base);
    color: var(--text-2);
    line-height: 1.7;
    margin-bottom: var(--space-8);
    max-width: 55ch;
}

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

.form-group {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    margin-bottom: var(--space-6);
}

.form-label {
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--text);
    letter-spacing: 0.01em;
}

.form-optional {
    font-weight: 400;
    color: var(--muted);
}

.required {
    color: var(--danger);
}

.form-input, .form-textarea {
    background: transparent;
    border: 1px solid #E5E5E5;
    border-radius: 0.75rem;
    padding: var(--space-3) var(--space-4);
    font-family: var(--font-body);
    font-size: var(--text-base);
    color: var(--text);
    width: 100%;
    transition: border-color 0.15s, box-shadow 0.15s;
}

.form-input:focus, .form-textarea:focus {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px oklch(40% 0.14 252 / 0.12);
}

.form-input::placeholder, .form-textarea::placeholder {
    color: var(--muted);
}

.form-textarea {
    resize: vertical;
    min-height: 140px;
    line-height: 1.65;
}

.form-error {
    color: var(--danger);
    font-size: var(--text-sm);
    font-weight: 500;
    padding: var(--space-3) var(--space-4);
    background: oklch(95% 0.05 25);
    border-radius: var(--radius);
    margin-bottom: var(--space-4);
}

.btn-submit {
    width: 100%;
    justify-content: center;
    padding: 0.85rem 2rem;
    font-size: var(--text-base);
    background: #B8956C;
    color: #F9F8F6;
}

.btn-submit:hover { background: #a07d58; }

.contact-success {
    text-align: center;
    padding: var(--space-12) var(--space-6);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-4);
}

.success-icon {
    color: var(--success);
}

.contact-success h3 {
    font-family: var(--font-display);
    font-size: var(--text-2xl);
    font-weight: 600;
    color: var(--text);
    letter-spacing: 0.01em;
}

.contact-success p {
    font-size: var(--text-base);
    color: var(--text-2);
    max-width: 45ch;
    line-height: 1.7;
}

.contact-info-col {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
    position: sticky;
    top: calc(var(--nav-height) + var(--space-6));
}

.contact-info-card {
    background: #ffffff;
    border: 1px solid rgb(229, 231, 235);
    border-radius: var(--radius-md);
    padding: var(--space-6);
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.contact-info-card h3 {
    font-family: var(--font-display);
    font-size: 1.5rem;
    font-weight: 700;
    color: #6B7280;
    letter-spacing: 0;
}

.contact-info-card p {
    font-size: var(--text-sm);
    color: var(--text-2);
    line-height: 1.7;
}

.contact-channels {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.contact-channel {
    display: flex;
    align-items: flex-start;
    gap: var(--space-4);
    background: transparent;
    border: none;
    border-radius: 0;
    padding: 0;
    text-decoration: none;
    color: inherit;
}

.contact-channel:hover { background: transparent; }

.contact-channel iconify-icon {
    color: #1E3A5F;
    flex-shrink: 0;
    width: 48px;
    height: 48px;
    background: rgba(30, 58, 95, 0.1);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 12px;
    box-sizing: border-box;
}

.contact-channel strong {
    display: block;
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--text);
    margin-bottom: 2px;
}

.contact-channel span {
    font-size: var(--text-xs);
    color: var(--muted);
}

.expertise-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.expertise-item {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    font-size: var(--text-sm);
    color: var(--text-2);
}

.expertise-check { color: var(--success); flex-shrink: 0; }

.response-times {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.response-time {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-sm);
    color: var(--text-2);
}

.response-time iconify-icon { color: var(--accent); }

@media (max-width: 860px) {
    .contact-layout {
        grid-template-columns: 1fr;
    }
    .contact-info-col { position: static; }
}

/* ── Prose (privacy) ───────────────────────────────────────── */

.prose {
    display: flex;
    flex-direction: column;
    gap: 0;
    font-size: var(--text-base);
    color: var(--text-2);
    line-height: 1.8;
}

.prose > * + * { margin-top: var(--space-4); }

.prose h2 {
    font-family: var(--font-display);
    font-size: var(--text-xl);
    font-weight: 600;
    color: var(--text);
    letter-spacing: 0.01em;
    margin-top: var(--space-8);
}

.prose ul {
    padding-left: var(--space-6);
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.prose a {
    color: var(--accent);
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* ── Page hero light ───────────────────────────────────────── */
.page-hero--light .page-title { color: var(--text); }
.page-hero--light .page-lead  { color: var(--text-2); }

/* ── Stats band ────────────────────────────────────────────── */

.section--stats {
    position: relative;
    padding: var(--space-24) 0;
    background:
        linear-gradient(rgba(30,58,95,0.9), rgba(30,58,95,0.9)),
        url('/static/img/stats-bg.jpg') center/cover no-repeat;
}

.stats-band-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-6);
    margin-bottom: var(--space-12);
}

.stats-band-card {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    align-items: center;
    text-align: center;
}

.stats-band-n {
    font-size: 2.25rem;
    font-weight: 700;
    color: #B8956C;
    line-height: 1.1;
}

.stats-band-l {
    font-size: 1rem;
    color: rgba(255, 255, 255, 0.8);
    font-weight: 400;
}

.stats-tabs {
    display: flex;
    justify-content: center;
    gap: var(--space-6);
    flex-wrap: wrap;
    margin-bottom: var(--space-8);
}

.stats-tab {
    font-size: 1rem;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.6);
    cursor: pointer;
    padding-bottom: 0.35rem;
    border-bottom: 2px solid transparent;
    transition: color 0.15s, border-color 0.15s;
}

.stats-tab.active {
    color: #ffffff;
    font-weight: 700;
    border-bottom-color: #B8956C;
}

.stats-messaging {
    display: flex;
    justify-content: center;
    gap: var(--space-4);
    flex-wrap: wrap;
}

.stats-wa,
.stats-tg {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    background: rgba(255, 255, 255, 0.12);
    color: #ffffff;
    text-decoration: none;
    font-size: 1rem;
    font-weight: 600;
    padding: 0.65rem 1.75rem;
    border-radius: 8px;
    border: 1px solid rgba(255, 255, 255, 0.5);
    transition: background 0.15s;
}

.stats-wa:hover, .stats-tg:hover { background: rgba(255, 255, 255, 0.22); }

@media (max-width: 640px) {
    .stats-band-grid { grid-template-columns: 1fr 1fr; gap: var(--space-4); }
    .stats-band-n { font-size: 1.75rem; }
}

/* ── Section tagline ───────────────────────────────────────── */

.section-tagline {
    display: inline-block;
    font-size: 0.875rem;
    font-weight: 600;
    color: #1E3A5F;
    margin-bottom: var(--space-2);
}

.section-tagline--gold { color: #B8956C; }

.section-header--center {
    text-align: center;
    margin-bottom: var(--space-12);
}

.section-header--center .section-title,
.section-header--center .section-sub {
    margin-left: auto;
    margin-right: auto;
}

.section--white { background: #ffffff; }

/* ── Benefit icon color variants ───────────────────────────── */

.benefit-icon--blue   { background: oklch(92% 0.04 252); color: oklch(42% 0.18 252); }
.benefit-icon--emerald{ background: oklch(92% 0.05 145); color: oklch(38% 0.14 145); }
.benefit-icon--amber  { background: oklch(93% 0.06 72);  color: oklch(48% 0.15 72);  }
.benefit-icon--purple { background: oklch(92% 0.04 305); color: oklch(40% 0.15 305); }
.benefit-icon--rose   { background: oklch(92% 0.05 25);  color: oklch(42% 0.15 25);  }
.benefit-icon--cyan   { background: oklch(92% 0.05 200); color: oklch(40% 0.14 200); }

.benefit {
    transition: box-shadow 0.3s;
}

/* ── Section bordered top ──────────────────────────────────── */

.section--bordered-top {
    border-top: 1px solid var(--border);
}

/* ── Investment 2-column layout ────────────────────────────── */

.invest-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-16);
    align-items: center;
}

.invest-text .section-title,
.invest-text__title {
    font-size: 3rem;
    font-weight: 700;
    color: rgb(45, 55, 72);
    margin-bottom: var(--space-6);
    max-width: none;
}

.invest-checks {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    margin-bottom: var(--space-8);
}

.invest-check {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    font-size: 1rem;
    color: rgb(55, 65, 81);
}

.invest-check iconify-icon { color: #1E3A5F; flex-shrink: 0; }

.invest-spec-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

.invest-spec-card {
    background: #ffffff;
    border: 1px solid rgb(229, 229, 229);
    border-radius: 12px;
    padding: 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    align-items: center;
    text-align: center;
}

.invest-spec-n {
    font-size: 1.875rem;
    font-weight: 700;
    color: #1E3A5F;
    line-height: 1.2;
}

.invest-spec-l {
    font-size: 0.875rem;
    color: rgb(75, 85, 99);
    line-height: 1.5;
}

.invest-cta-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    margin-top: 1.5rem;
}

.invest-cta-row .hero-cta {
    padding: 0 1.5rem;
    height: 40px;
    font-size: 0.875rem;
}

.invest-btn-contact {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background: #1E3A5F;
    color: #ffffff;
    font-size: 0.875rem;
    font-weight: 600;
    padding: 0 1.5rem;
    height: 40px;
    border-radius: 6px;
    text-decoration: none;
    white-space: nowrap;
    transition: background 0.15s;
}

.invest-btn-contact:hover { background: #162f4d; }

@media (max-width: 860px) {
    .invest-layout { grid-template-columns: 1fr; }
    .invest-spec-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 540px) {
    .invest-spec-grid { grid-template-columns: 1fr 1fr; }
}

/* ── Process steps grid ────────────────────────────────────── */

/* pill above process heading */
.process-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    background: rgba(255, 255, 255, 0.8);
    color: #1E3A5F;
    font-size: 0.875rem;
    font-weight: 600;
    padding: 0.5rem 1rem;
    border-radius: 9999px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -2px rgba(0,0,0,0.1);
    margin-bottom: var(--space-4);
}

.steps-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-6);
    margin-top: var(--space-8);
    margin-bottom: var(--space-8);
}

.process-title {
    font-size: 2.25rem;
    font-weight: 800;
    color: rgb(45, 55, 72);
}

@media (min-width: 768px) {
    .process-title { font-size: 3.75rem; }
}

.step-card {
    background: #ffffff;
    border: 2px solid rgb(184, 149, 108);
    border-radius: 16px;
    padding: 20px;
    display: flex;
    flex-direction: column;
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -4px rgba(0,0,0,0.1);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.step-card:hover {
    box-shadow: 0 25px 50px -12px rgba(0,0,0,0.25);
    transform: translateY(-2px);
}

.step-card-header {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.step-num-badge {
    background: #1E3A5F;
    border-radius: 12px;
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.2);
}

.step-num-badge span {
    color: #ffffff;
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1;
}

.step-card-line {
    height: 1px;
    flex: 1;
    background: rgb(59, 130, 246);
    opacity: 0.3;
}

.step-card h3 {
    font-size: 1rem;
    font-weight: 700;
    color: #6B7280;
    margin-bottom: 0.5rem;
    transition: color 0.2s;
}

.step-card:hover h3 {
    color: #1E3A5F;
}

.step-card p {
    font-size: var(--text-sm);
    color: var(--text-2);
    line-height: 1.6;
}

/* Final "Golden Visa Approved" card */
.process-final {
    display: flex;
    justify-content: center;
    margin-top: 0.5rem;
}

.process-final-card {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    background: #ffffff;
    border: 2px solid rgb(184, 149, 108);
    border-radius: 16px;
    padding: 20px 32px;
    box-shadow: 0 20px 25px -5px rgba(0,0,0,0.1), 0 8px 10px -6px rgba(0,0,0,0.1);
    color: #1E3A5F;
}

.process-final-badge {
    background: #1E3A5F;
    border-radius: 16px;
    width: 56px;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.2);
}

.process-final-badge span {
    font-size: 1.875rem;
    line-height: 1;
}

.process-final-label {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-2);
    margin-bottom: 0.125rem;
}

.process-final-title {
    font-size: 1.25rem;
    font-weight: 700;
    color: #1E3A5F;
}

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

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

/* ── Athens Showcase ───────────────────────────────────────── */

.section--athens-showcase {
    background:
        linear-gradient(oklch(98% 0.005 80 / 0.92), oklch(98% 0.005 80 / 0.92)),
        url('/static/img/why-greece-bg.jpg') center/cover no-repeat;
}

.athens-showcase-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-6);
    margin-top: var(--space-4);
}

.athens-showcase-card {
    background: var(--bg);
    border-radius: var(--radius-md);
    padding: var(--space-6);
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    border: 1px solid var(--border);
    transition: box-shadow 0.2s, transform 0.2s;
}

.athens-showcase-card:hover {
    box-shadow: 0 4px 20px oklch(40% 0.08 252 / 0.08);
    transform: translateY(-3px);
}

.athens-showcase-icon {
    width: 52px;
    height: 52px;
    background: var(--accent-faint);
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--accent);
}

.athens-showcase-card h3 {
    font-family: var(--font-display);
    font-size: var(--text-base);
    font-weight: 600;
    color: var(--text);
    letter-spacing: 0.01em;
}

.athens-showcase-card p {
    font-size: var(--text-sm);
    color: var(--text-2);
    line-height: 1.6;
}

@media (max-width: 860px) {
    .athens-showcase-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 480px) {
    .athens-showcase-grid { grid-template-columns: 1fr; }
}

/* ── Eligibility section ───────────────────────────────────── */

.eligibility-layout {
    display: grid;
    grid-template-columns: 1fr 420px;
    gap: var(--space-16);
    align-items: start;
}

.eligibility-text .section-title {
    margin-bottom: var(--space-4);
}

.eligibility-card {
    background: #ffffff;
    border-radius: var(--radius-md);
    padding: var(--space-8);
    border: 1px solid rgba(30, 58, 95, 0.2);
    box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
}

.eligibility-card-title {
    font-family: var(--font-display);
    font-size: 1.5rem;
    font-weight: 700;
    color: #6B7280;
    line-height: 1.33;
    letter-spacing: normal;
    margin-bottom: var(--space-6);
}

.eligibility-list {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.eligibility-item {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    font-size: var(--text-sm);
    color: var(--text-2);
    font-weight: 500;
}

.eligibility-icon-wrap {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.eligibility-icon-wrap--yes {
    background: rgb(220, 252, 231);
    color: rgb(22, 163, 74);
}

.eligibility-icon-wrap--no {
    background: rgb(254, 226, 226);
    color: rgb(239, 68, 68);
}

.eligibility-item--no > span:last-child  { color: rgb(156, 163, 175); text-decoration: line-through; }
.eligibility-item--yes > span:last-child { color: rgb(17, 24, 39); }

@media (max-width: 860px) {
    .eligibility-layout { grid-template-columns: 1fr; }
}

/* ── Property card real images ─────────────────────────────── */

.prop-img {
    height: 200px;
    overflow: hidden;
    background: var(--bg-warm);
}

.prop-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform 0.35s;
    display: block;
}

.prop-card:hover .prop-img img { transform: scale(1.05); }

/* ── Testimonials carousel ─────────────────────────────────── */

.testimonials-carousel {
    display: flex;
    gap: var(--space-6);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    padding-bottom: var(--space-4);
    cursor: grab;
}

.testimonials-carousel:active { cursor: grabbing; }

.testimonials-carousel::-webkit-scrollbar { height: 4px; }
.testimonials-carousel::-webkit-scrollbar-track { background: var(--border); border-radius: 2px; }
.testimonials-carousel::-webkit-scrollbar-thumb { background: var(--accent); border-radius: 2px; }

.testimonial-card {
    flex: 0 0 320px;
    scroll-snap-align: start;
    background: var(--bg);
    border-radius: var(--radius-md);
    overflow: hidden;
    border: 1px solid var(--border);
}

.testimonial-video {
    width: 100%;
    height: 200px;
    object-fit: cover;
    display: block;
    background: var(--bg-navy);
}

.testimonial-meta {
    padding: var(--space-4) var(--space-5);
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

.testimonial-name {
    font-family: var(--font-display);
    font-size: var(--text-base);
    font-weight: 600;
    color: var(--text);
    letter-spacing: 0.01em;
}

.testimonial-title {
    font-size: var(--text-sm);
    color: var(--muted);
}

/* ── Team grid ─────────────────────────────────────────────── */

.team-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-8);
}

.team-card {
    display: flex;
    flex-direction: column;
    background: #ffffff;
    border: 1px solid var(--border);
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
    transition: box-shadow 0.3s, border-color 0.3s;
}

.team-card:hover {
    box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
    border-color: rgba(30, 58, 95, 0.3);
}

.team-photo-wrap {
    border-radius: 0;
    overflow: hidden;
    height: 256px;
    background: var(--bg-warm);
}

.team-photo {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    transition: transform 0.35s;
}

.team-card:hover .team-photo { transform: scale(1.05); }

.team-info {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    padding: var(--space-6);
    text-align: center;
    align-items: center;
}

.team-name {
    font-family: var(--font-display);
    font-size: 1.125rem;
    font-weight: 700;
    color: #6B7280;
    letter-spacing: normal;
}

.team-role {
    font-size: 0.875rem;
    font-weight: 400;
    color: #1E3A5F;
    margin-bottom: 0.5rem;
}

.team-links {
    display: flex;
    gap: 0.75rem;
    justify-content: center;
    margin-top: var(--space-1);
}

.team-link {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #ffffff;
    border: 1px solid var(--border);
    box-shadow: 0 1px 2px rgb(0 0 0 / 0.08);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #0A0A0A;
    transition: background 0.2s, box-shadow 0.2s, color 0.2s;
}

.team-link:hover {
    background: var(--bg-warm);
    box-shadow: 0 2px 6px rgb(0 0 0 / 0.12);
    color: #1E3A5F;
}

/* Team cards pop in (scale + rise) with a stagger when scrolled into view */
.js .team-card.reveal {
    transition: opacity 0.5s ease, transform 0.5s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.3s ease, border-color 0.3s ease;
    transform: scale(0.9) translateY(20px);
}
.js .team-card.reveal.is-visible { transform: none; }
.team-card.reveal:nth-child(1) { transition-delay: 0s; }
.team-card.reveal:nth-child(2) { transition-delay: 0.07s; }
.team-card.reveal:nth-child(3) { transition-delay: 0.14s; }
.team-card.reveal:nth-child(4) { transition-delay: 0.21s; }
.team-card.reveal:nth-child(5) { transition-delay: 0.28s; }
.team-card.reveal:nth-child(6) { transition-delay: 0.35s; }
.team-card.reveal:nth-child(7) { transition-delay: 0.42s; }
.team-card.reveal:nth-child(8) { transition-delay: 0.49s; }
@media (prefers-reduced-motion: reduce) {
    .js .team-card.reveal { transform: none; transition: none; }
}

@media (max-width: 860px) {
    .team-grid { grid-template-columns: 1fr 1fr; gap: var(--space-8); }
}

@media (max-width: 480px) {
    .team-grid { grid-template-columns: 1fr; max-width: 320px; margin: 0 auto; }
}

/* ── Home contact section ──────────────────────────────────── */

.home-contact-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-12);
    align-items: start;
}

.home-contact-info-col {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
}

@media (max-width: 860px) {
    .home-contact-layout { grid-template-columns: 1fr; }
    .home-contact-info-col { position: static; }
}

/* ── Footer social + contact ───────────────────────────────── */

.footer-social {
    display: flex;
    gap: var(--space-3);
    margin-top: var(--space-2);
}

.footer-social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    color: var(--text);
    text-decoration: none;
    transition: color 0.15s;
}

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

.footer-contact-item {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-sm);
    color: var(--muted-inv);
    line-height: 1.6;
    padding: var(--space-1) 0;
}

.footer-contact-item iconify-icon { flex-shrink: 0; color: var(--gold-light); }
