
:root {
    --thm-primary: #0b6fa4;
    --thm-primary-dark: #073b5a;
    --thm-secondary: #087f72;
    --thm-accent: #42c6d3;
    --thm-navy: #0b2239;
    --thm-text: #40566a;
    --thm-muted: #718598;
    --thm-light: #eef8fb;
    --thm-soft: #f7fbfd;
    --thm-white: #ffffff;
    --thm-border: #d9eaf1;
    --thm-shadow: 0 18px 50px rgba(8, 56, 86, .10);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    color: var(--thm-text);
    background: var(--thm-white);
    font-family: 'Montserrat', sans-serif;
    line-height: 1.75;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6,
.display-1, .display-2, .display-3, .display-4, .display-5, .display-6 {
    color: var(--thm-navy);
    font-family: 'Playfair Display', serif;
    font-weight: 700;
    line-height: 1.18;
}
a { color: var(--thm-primary); text-decoration: none; }
a:hover { color: var(--thm-secondary); }
img { max-width: 100%; }

#spinner {
    opacity: 0;
    visibility: hidden;
    transition: opacity .4s ease, visibility 0s linear .4s;
    z-index: 99999;
}
#spinner.show { opacity: 1; visibility: visible; transition: opacity .4s ease; animation: spinner-failsafe .45s ease 2s forwards; }
@keyframes spinner-failsafe {
    to { opacity: 0; visibility: hidden; pointer-events: none; }
}

.top-strip {
    background: var(--thm-navy);
    color: rgba(255,255,255,.82);
    font-size: .84rem;
    letter-spacing: .02em;
}
.top-strip i { color: var(--thm-accent); }

.site-nav {
    position: sticky;
    top: 0;
    z-index: 1030;
    background: rgba(255,255,255,.96);
    backdrop-filter: blur(14px);
    border-bottom: 1px solid rgba(11,111,164,.10);
    box-shadow: 0 8px 30px rgba(11,34,57,.04);
}
.navbar { padding-top: .8rem; padding-bottom: .8rem; }
.brand-wrap { display: flex; align-items: center; gap: .75rem; }
.brand-mark {
    width: 46px; height: 46px; border-radius: 14px;
    display: inline-flex; align-items: center; justify-content: center;
    color: #fff; font-size: 1.2rem;
    background: var(--thm-primary);
    box-shadow: 0 10px 25px rgba(11,111,164,.22);
}
.brand-text { display: flex; flex-direction: column; line-height: 1.05; }
.brand-text strong { color: var(--thm-navy); font-family: 'Playfair Display', serif; font-size: 1.16rem; }
.brand-text span { color: var(--thm-primary); font-size: .70rem; font-weight: 700; letter-spacing: .17em; margin-top: .28rem; }
.navbar .navbar-nav .nav-link {
    color: #29465d;
    font-size: .82rem;
    font-weight: 700;
    letter-spacing: .08em;
    padding: .8rem 1rem;
    position: relative;
}
.navbar .navbar-nav .nav-link::after {
    content: '';
    position: absolute;
    left: 1rem; right: 1rem; bottom: .35rem;
    height: 2px; border-radius: 4px;
    transform: scaleX(0);
    transition: .25s ease;
    background: var(--thm-primary);
}
.navbar .navbar-nav .nav-link:hover,
.navbar .navbar-nav .nav-link.active { color: var(--thm-primary); }
.navbar .navbar-nav .nav-link:hover::after,
.navbar .navbar-nav .nav-link.active::after { transform: scaleX(1); }
.navbar-toggler { border: 0; box-shadow: none !important; color: var(--thm-primary); }

.btn-thm, .btn-outline-thm {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .55rem;
    min-height: 50px;
    padding: .78rem 1.45rem;
    border-radius: 12px;
    font-weight: 700;
    transition: .25s ease;
}
.btn-thm {
    color: #fff;
    border: 1px solid transparent;
    background: var(--thm-primary);
    box-shadow: 0 12px 30px rgba(11,111,164,.22);
}
.btn-thm:hover { color: #fff; transform: translateY(-2px); box-shadow: 0 16px 34px rgba(11,111,164,.30); }
.btn-outline-thm { color: var(--thm-primary); border: 1px solid rgba(11,111,164,.25); background: #fff; }
.btn-outline-thm:hover { color: #fff; background: var(--thm-secondary); border-color: var(--thm-secondary); transform: translateY(-2px); }

.hero-section {
    position: relative;
    overflow: hidden;
    min-height: 700px;
    display: flex;
    align-items: center;
    background: #06283f;
}
.hero-section::before,
.hero-section::after {
    content: '';
    position: absolute;
    border-radius: 50%;
    border: 1px solid rgba(255,255,255,.10);
}
.hero-section::before { width: 620px; height: 620px; right: -190px; top: -170px; }
.hero-section::after { width: 420px; height: 420px; right: 90px; bottom: -210px; }
.hero-grid {
    position: absolute;
    inset: 0;
    opacity: .14;
    background-image: none;
    background-size: 48px 48px;
    mask-image: none;
}
.hero-copy { position: relative; z-index: 2; }
.hero-eyebrow,
.section-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .15em;
    text-transform: uppercase;
}
.hero-eyebrow { color: #8de8ee; }
.hero-eyebrow::before, .section-eyebrow::before { content: ''; width: 32px; height: 2px; border-radius: 2px; background: currentColor; }
.hero-title { color: #fff; font-size: clamp(3rem, 6vw, 5.4rem); max-width: 820px; margin: 1rem 0 1.4rem; }
.hero-title span { color: #8de8ee; }
.hero-lead { max-width: 680px; color: rgba(255,255,255,.78); font-size: 1.08rem; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .9rem; margin-top: 2rem; }
.hero-actions .btn-outline-thm { background: rgba(255,255,255,.06); color: #fff; border-color: rgba(255,255,255,.28); }
.hero-actions .btn-outline-thm:hover { background: #fff; color: var(--thm-primary); }

.hero-panel {
    position: relative;
    z-index: 2;
    padding: 1.7rem;
    border-radius: 26px;
    color: #fff;
    background: rgba(255,255,255,.10);
    border: 1px solid rgba(255,255,255,.18);
    box-shadow: 0 28px 80px rgba(0,0,0,.24);
    backdrop-filter: blur(14px);
}
.hero-panel h3 { color: #fff; font-size: 1.5rem; margin-bottom: 1.2rem; }
.metric-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: .85rem; }
.metric-card { padding: 1.1rem; border-radius: 17px; background: rgba(255,255,255,.10); border: 1px solid rgba(255,255,255,.12); }
.metric-card strong { display: block; color: #fff; font-family: 'Playfair Display', serif; font-size: 1.9rem; line-height: 1; }
.metric-card span { display: block; margin-top: .5rem; color: rgba(255,255,255,.72); font-size: .80rem; line-height: 1.35; }
.hero-platforms { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: 1rem; }
.hero-platforms span { padding: .38rem .65rem; border-radius: 999px; color: #d8fbff; background: rgba(255,255,255,.08); font-size: .75rem; }

.page-hero {
    position: relative;
    overflow: hidden;
    padding: 110px 0 95px;
    color: #fff;
    background: #06283f;
}
.page-hero::after { content: ''; position: absolute; width: 380px; height: 380px; border-radius: 50%; right: -110px; bottom: -230px; border: 1px solid rgba(255,255,255,.14); }
.page-hero h1 { color: #fff; font-size: clamp(2.7rem, 6vw, 4.8rem); margin: .7rem 0 1rem; }
.page-hero p { max-width: 720px; color: rgba(255,255,255,.78); font-size: 1.05rem; }
.breadcrumb-thm { font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; color: #96edf2; }
.breadcrumb-thm a { color: #fff; }

.section { padding: 100px 0; }
.section-soft { background: var(--thm-soft); }
.section-blue { background: var(--thm-light); }
.section-eyebrow { color: var(--thm-primary); }
.section-title { font-size: clamp(2.2rem, 4vw, 3.5rem); margin: .8rem 0 1.25rem; }
.section-copy { max-width: 740px; color: var(--thm-muted); }

.trust-strip { border-bottom: 1px solid var(--thm-border); background: #fff; }
.trust-item { display: flex; align-items: center; gap: .8rem; padding: 1.5rem 0; }
.trust-icon { width: 44px; height: 44px; border-radius: 13px; display: inline-flex; align-items: center; justify-content: center; color: var(--thm-primary); background: var(--thm-light); }
.trust-item strong { display: block; color: var(--thm-navy); font-size: .92rem; }
.trust-item span { color: var(--thm-muted); font-size: .76rem; }

.portrait-wrap { position: relative; padding: 0 0 34px 34px; }
.portrait-wrap::before { content: ''; position: absolute; left: 0; bottom: 0; width: 72%; height: 74%; border-radius: 28px; background: #e8f3f5; }
.portrait-wrap img { position: relative; z-index: 1; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: center 22%; border-radius: 28px; box-shadow: var(--thm-shadow); }
.portrait-caption { position: absolute; z-index: 2; right: -18px; bottom: 0; width: min(320px, 80%); padding: 1.05rem 1.2rem; border-radius: 17px; color: #fff; background: var(--thm-primary-dark); box-shadow: 0 16px 35px rgba(7,59,90,.25); }
.portrait-caption strong { display: block; color: #fff; font-family: 'Playfair Display', serif; }
.portrait-caption span { display: block; color: rgba(255,255,255,.72); font-size: .74rem; margin-top: .2rem; }

.check-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .75rem 1.2rem; margin: 1.4rem 0 1.8rem; }
.check-item { display: flex; align-items: flex-start; gap: .6rem; color: #2f5067; font-size: .92rem; }
.check-item i { color: var(--thm-secondary); margin-top: .35rem; }

.service-card,
.info-card,
.process-card,
.value-card,
.contact-card {
    height: 100%;
    border: 1px solid var(--thm-border);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 12px 38px rgba(11,58,86,.06);
    transition: .28s ease;
}
.service-card:hover, .info-card:hover, .value-card:hover { transform: translateY(-7px); box-shadow: var(--thm-shadow); border-color: rgba(11,111,164,.28); }
.service-card { padding: 1.7rem; }
.card-icon { width: 58px; height: 58px; border-radius: 17px; display: inline-flex; align-items: center; justify-content: center; font-size: 1.35rem; color: #fff; background: var(--thm-primary); box-shadow: 0 12px 25px rgba(11,111,164,.18); }
.service-card h3, .info-card h3, .process-card h3, .value-card h3 { font-size: 1.28rem; margin: 1.2rem 0 .7rem; }
.service-card p, .info-card p, .process-card p, .value-card p { color: var(--thm-muted); font-size: .91rem; margin-bottom: 0; }
.card-link { display: inline-flex; align-items: center; gap: .45rem; margin-top: 1.1rem; font-weight: 700; font-size: .85rem; }

.property-band { position: relative; overflow: hidden; color: #fff; background: #075c74; }
.property-band::before { content: ''; position: absolute; width: 560px; height: 560px; border-radius: 50%; border: 1px solid rgba(255,255,255,.11); right: -180px; top: -260px; }
.property-band h2 { color: #fff; }
.property-band p { color: rgba(255,255,255,.72); }
.property-chip { display: flex; align-items: center; gap: .8rem; padding: 1rem; border-radius: 15px; color: #fff; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.12); }
.property-chip i { color: #8de8ee; }

.process-card { position: relative; padding: 1.6rem; }
.process-number { font-family: 'Playfair Display', serif; font-weight: 700; font-size: 3rem; line-height: 1; color: rgba(11,111,164,.13); }
.process-line { position: absolute; left: 100%; top: 58px; width: calc(var(--bs-gutter-x) + 1px); height: 1px; background: var(--thm-border); }

.stat-panel { padding: 2rem; border-radius: 24px; color: #fff; background: var(--thm-primary-dark); box-shadow: var(--thm-shadow); }
.stat-panel .stat { padding: 1rem; border-radius: 16px; background: rgba(255,255,255,.08); }
.stat-panel strong { display: block; color: #fff; font-family: 'Playfair Display', serif; font-size: 2rem; }
.stat-panel span { color: rgba(255,255,255,.70); font-size: .78rem; }

.timeline { position: relative; padding-left: 28px; }
.timeline::before { content: ''; position: absolute; left: 7px; top: 10px; bottom: 10px; width: 2px; background: var(--thm-primary); }
.timeline-item { position: relative; padding: 0 0 1.5rem 1.2rem; }
.timeline-item::before { content: ''; position: absolute; left: -27px; top: .45rem; width: 14px; height: 14px; border-radius: 50%; background: #fff; border: 4px solid var(--thm-primary); }
.timeline-item h4 { font-size: 1.08rem; margin-bottom: .3rem; }
.timeline-item p { margin: 0; font-size: .9rem; color: var(--thm-muted); }

.compliance-note { padding: 1.2rem 1.3rem; border-radius: 16px; color: #36576c; background: #f0f8fb; border-left: 4px solid var(--thm-primary); font-size: .88rem; }
.list-clean { list-style: none; padding: 0; margin: 0; }
.list-clean li { display: flex; gap: .7rem; padding: .55rem 0; border-bottom: 1px solid rgba(11,111,164,.08); }
.list-clean li:last-child { border-bottom: 0; }
.list-clean i { color: var(--thm-secondary); margin-top: .38rem; }

.villa-visual { position: relative; min-height: 460px; border-radius: 30px; overflow: hidden; background: #e8f4f5; box-shadow: var(--thm-shadow); }
.villa-visual::before { content: ''; position: absolute; inset: 0; background: rgba(11,111,164,.06); }
.villa-sun { position: absolute; right: 42px; top: 45px; width: 95px; height: 95px; border-radius: 50%; background: rgba(66,198,211,.35); }
.villa-house { position: absolute; left: 10%; right: 10%; bottom: 70px; height: 230px; border-radius: 28px 28px 8px 8px; background: #fff; box-shadow: 0 24px 50px rgba(7,59,90,.13); }
.villa-house::before { content: ''; position: absolute; left: -5%; right: -5%; top: -55px; height: 95px; background: var(--thm-primary-dark); clip-path: polygon(50% 0,100% 70%,94% 70%,94% 100%,6% 100%,6% 70%,0 70%); }
.villa-window { position: absolute; top: 48px; width: 25%; height: 90px; border-radius: 10px; background: #0b85a5; box-shadow: inset 0 0 0 6px #e7f5f7; }
.villa-window.one { left: 9%; } .villa-window.two { right: 9%; }
.villa-door { position: absolute; left: 42%; width: 16%; top: 38px; bottom: 0; border-radius: 12px 12px 0 0; background: #0a405f; }
.villa-pool { position: absolute; left: 8%; right: 8%; bottom: 20px; height: 70px; border-radius: 50%; background: #16a9b5; border: 8px solid rgba(255,255,255,.82); }

.form-control, .form-select { min-height: 52px; border-radius: 12px; border: 1px solid #d8e8ef; color: var(--thm-navy); background: #fbfdfe; }
.form-control:focus, .form-select:focus { border-color: rgba(11,111,164,.55); box-shadow: 0 0 0 .22rem rgba(11,111,164,.09); }
textarea.form-control { min-height: 150px; }
.contact-card { padding: 1.8rem; }
.contact-detail { display: flex; gap: .9rem; align-items: flex-start; padding: 1rem 0; border-bottom: 1px solid var(--thm-border); }
.contact-detail:last-child { border-bottom: 0; }
.contact-detail .icon { width: 42px; height: 42px; border-radius: 12px; flex: 0 0 auto; display: flex; align-items: center; justify-content: center; color: var(--thm-primary); background: var(--thm-light); }
.contact-detail strong { display: block; color: var(--thm-navy); font-size: .9rem; }
.contact-detail span { display: block; color: var(--thm-muted); font-size: .84rem; }

.cta-box { position: relative; overflow: hidden; padding: 3rem; border-radius: 28px; color: #fff; background: #075c74; box-shadow: var(--thm-shadow); }
.cta-box::after { content: ''; position: absolute; width: 320px; height: 320px; border-radius: 50%; right: -110px; top: -150px; border: 1px solid rgba(255,255,255,.14); }
.cta-box h2 { color: #fff; font-size: clamp(2rem, 4vw, 3.2rem); }
.cta-box p { color: rgba(255,255,255,.72); }

.footer { background: #071b2f; color: rgba(255,255,255,.66); }
.footer h4, .footer h5 { color: #fff; }
.footer-brand strong { display: block; color: #fff; font-family: 'Playfair Display', serif; font-size: 1.45rem; }
.footer-brand span { display: block; color: #8de8ee; font-size: .74rem; letter-spacing: .16em; margin-top: .2rem; }
.footer-links { list-style: none; padding: 0; margin: 0; }
.footer-links li { margin-bottom: .55rem; }
.footer-links a { color: rgba(255,255,255,.65); font-size: .9rem; }
.footer-links a:hover { color: #8de8ee; padding-left: 3px; }
.footer-social a { width: 39px; height: 39px; border-radius: 11px; display: inline-flex; align-items: center; justify-content: center; margin-right: .45rem; color: #fff; background: rgba(255,255,255,.08); }
.footer-social a:hover { background: var(--thm-primary); }
.copyright { border-top: 1px solid rgba(255,255,255,.09); color: rgba(255,255,255,.48); font-size: .82rem; }
.back-to-top { display: none; position: fixed; right: 24px; bottom: 24px; width: 46px; height: 46px; z-index: 99; align-items: center; justify-content: center; border-radius: 14px; color: #fff; background: var(--thm-primary); box-shadow: 0 12px 28px rgba(11,111,164,.28); }
.back-to-top:hover { color: #fff; background: var(--thm-secondary); }

@media (max-width: 991.98px) {
    .top-strip { display: none; }
    .navbar-collapse { padding-top: .8rem; }
    .navbar .navbar-nav .nav-link { padding: .65rem 0; }
    .navbar .navbar-nav .nav-link::after { left: 0; right: auto; width: 36px; bottom: .3rem; transform-origin: left; }
    .hero-section { min-height: auto; padding: 110px 0 90px; }
    .hero-panel { margin-top: 2rem; }
    .section { padding: 78px 0; }
    .portrait-caption { right: 0; }
    .process-line { display: none; }
}

@media (max-width: 575.98px) {
    .brand-mark { width: 40px; height: 40px; }
    .brand-text strong { font-size: .96rem; }
    .brand-text span { font-size: .60rem; }
    .hero-title { font-size: 2.65rem; }
    .metric-grid { grid-template-columns: 1fr 1fr; }
    .hero-panel { padding: 1.1rem; }
    .check-grid { grid-template-columns: 1fr; }
    .portrait-wrap { padding-left: 16px; }
    .portrait-caption { position: relative; width: 94%; margin: -24px auto 0; right: auto; bottom: auto; }
    .cta-box { padding: 2rem 1.35rem; }
    .page-hero { padding: 88px 0 75px; }
}
