:root {
    --ts-primary: #031635;
    --ts-primary-2: #1a2b4b;
    --ts-purple: #712edd;
    --ts-blue: #2f6fdd;
    --ts-gold: #f5b800;
    --ts-teal: #14b8a6;
    --ts-bg: #fbf8fc;
    --ts-surface: #ffffff;
    --ts-soft: #f5f3f6;
    --ts-border: #e4e2e5;
    --ts-text: #1b1b1e;
    --ts-muted: #5f6470;
    --ts-shadow: 0 12px 32px rgba(26, 43, 75, .08);
    --ts-shadow-soft: 0 4px 20px rgba(26, 43, 75, .05);
}
* { box-sizing: border-box; }
body { font-family: Inter, system-ui, sans-serif; color: var(--ts-text); background: var(--ts-bg); }
h1,h2,h3,h4,h5,h6,.navbar-brand { font-family: "Hanken Grotesk", Inter, sans-serif; }
.ts-header { background: rgba(255,255,255,.86); backdrop-filter: blur(14px); border-bottom: 1px solid rgba(228,226,229,.8); }
.brand-mark { width: 38px; height: 38px; border-radius: 14px; display: inline-flex; align-items: center; justify-content: center; color: #fff; background: linear-gradient(135deg,var(--ts-primary),var(--ts-purple)); box-shadow: 0 10px 24px rgba(113,46,221,.22); }
.nav-link { font-weight: 650; color: #30333a; border-radius: 999px; padding-inline: 14px!important; }
.nav-link:hover,.nav-link.active { background: #eef2ff; color: var(--ts-primary); }
.dropdown-menu { border: 1px solid var(--ts-border); border-radius: 18px; box-shadow: var(--ts-shadow); padding: 10px; }
.dropdown-item { border-radius: 12px; font-weight: 600; }
.btn-primary { background: linear-gradient(135deg,var(--ts-primary),var(--ts-purple)); border: none; }
.btn-primary:hover { opacity: .95; }
.btn-outline-dark { border-color: #c9ccd5; color: var(--ts-primary); }
.hero { position: relative; overflow: hidden; background:
    radial-gradient(circle at 15% 15%, rgba(47,111,221,.16), transparent 35%),
    radial-gradient(circle at 90% 10%, rgba(113,46,221,.14), transparent 34%),
    linear-gradient(180deg,#fff,var(--ts-bg)); }
.hero::after { content:""; position:absolute; inset:auto -10% -35% auto; width: 540px; height: 540px; border-radius: 50%; background: rgba(20,184,166,.10); filter: blur(20px); }
.section-pad { padding: 88px 0; }
.section-title { font-size: clamp(2rem,4vw,3.2rem); line-height: 1.02; letter-spacing: -.035em; font-weight: 800; }
.hero-title { font-size: clamp(2.6rem,6vw,5.6rem); line-height: .95; letter-spacing: -.055em; font-weight: 800; }
.lead-muted { color: var(--ts-muted); font-size: 1.08rem; line-height: 1.75; }
.trust-badge { display: inline-flex; align-items: center; gap: .5rem; padding: .5rem .9rem; border: 1px solid var(--ts-border); border-radius: 999px; background: rgba(255,255,255,.72); font-weight: 700; color: var(--ts-primary); }
.ts-card { background: var(--ts-surface); border: 1px solid var(--ts-border); border-radius: 24px; box-shadow: var(--ts-shadow-soft); }
.ts-card-raised { box-shadow: var(--ts-shadow); }
.product-card { min-height: 420px; overflow: hidden; position: relative; }
.product-card::before { content:""; position:absolute; inset: -120px -80px auto auto; width: 260px; height:260px; border-radius: 50%; opacity: .16; }
.product-star::before { background: var(--ts-gold); }
.product-pet::before { background: var(--ts-teal); }
.icon-bubble { width: 52px; height: 52px; border-radius: 17px; display: inline-flex; align-items: center; justify-content: center; background: #eef2ff; color: var(--ts-primary); font-size: 1.4rem; }
.icon-bubble.gold { background: rgba(245,184,0,.16); color: #9a6b00; }
.icon-bubble.teal { background: rgba(20,184,166,.16); color: #087568; }
.feature-chip { display: inline-flex; align-items: center; padding: .42rem .72rem; border-radius: 999px; background: #f4f6fb; color: #334155; font-weight: 650; font-size: .86rem; margin: .2rem; }
.mockup-panel { border-radius: 28px; background: rgba(255,255,255,.78); border: 1px solid rgba(255,255,255,.7); box-shadow: var(--ts-shadow); backdrop-filter: blur(14px); padding: 22px; }
.mockup-card { border-radius: 20px; background: #fff; border: 1px solid var(--ts-border); padding: 18px; }
.stat-dot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; background: var(--ts-teal); }
.process-step { position: relative; }
.process-number { width: 42px; height:42px; border-radius: 50%; display:flex; align-items:center; justify-content:center; background: var(--ts-primary); color:#fff; font-weight: 800; }
.finnish-strip { background: linear-gradient(135deg,#031635,#1a438e); color:#fff; border-radius: 28px; overflow: hidden; position: relative; }
.finnish-strip::after { content:""; position:absolute; right:-100px; top:-120px; width: 360px; height: 360px; border-radius: 50%; background: rgba(255,255,255,.08); }
.footer-list { list-style:none; margin:0; padding:0; display:grid; gap:.5rem; color: var(--ts-muted); }
.footer-list a { color: var(--ts-muted); }
.ts-footer { background:#fff; border-top:1px solid var(--ts-border); }
.form-control,.form-select { border-radius: 14px; border-color: #dfe2ea; min-height: 46px; }
.form-control:focus,.form-select:focus { border-color: var(--ts-purple); box-shadow: 0 0 0 .2rem rgba(113,46,221,.14); }
.language-form select { min-width: 76px; border-radius: 999px; font-weight: 700; }
.pet-note { border-left: 4px solid var(--ts-teal); background: rgba(20,184,166,.08); }
@media(max-width: 991.98px) { .section-pad { padding: 60px 0; } .hero-title { font-size: 3.2rem; } }
.footer-list { list-style: none; padding-left: 0; margin-bottom: 0; }
.footer-list li { margin-bottom: .55rem; color: var(--bs-secondary-color); }
.footer-list a { color: inherit; text-decoration: none; }
.footer-list a:hover { color: var(--bs-primary); }
.footer-contact-list li { display: flex; align-items: flex-start; gap: .25rem; line-height: 1.45; }
.footer-contact-list i { margin-top: .15rem; color: var(--bs-primary); }
.contact-info-list { display: grid; gap: 0.85rem; }
.contact-info-item { display: flex; align-items: flex-start; gap: 0.75rem; color: var(--bs-secondary-color); }
.contact-info-item i { color: var(--bs-primary); margin-top: 0.2rem; }
.contact-info-item a { color: inherit; text-decoration: none; }
.contact-info-item a:hover { color: var(--bs-primary); }
.icon-bubble.blue { background: rgba(47,111,221,.16); color: #1d4ed8; }
.icon-bubble.purple { background: rgba(113,46,221,.14); color: var(--ts-purple); }
.product-club::before { background: var(--ts-blue); }
.product-pal::before { background: var(--ts-purple); }
.product-shop::before { background: var(--ts-gold); }
.product-card .btn { position: relative; z-index: 2; }
.product-card {
    position: relative;
    border: 1px solid #e9e6f2;
    border-radius: 28px;
    background: #fff;
    overflow: hidden;
    min-height: 100%;
    box-shadow: 0 8px 24px rgba(25, 25, 40, 0.04);
}

.product-card-inner {
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 2rem;
    z-index: 2;
}

.product-card::before {
    content: "";
    position: absolute;
    top: -30px;
    right: -30px;
    width: 180px;
    height: 180px;
    border-radius: 50%;
    opacity: .28;
    z-index: 1;
}

.product-accent-gold::before {
    background: #f4d66d;
}

.product-accent-blue::before {
    background: #9bb7ff;
}

.product-accent-purple::before {
    background: #c9a7ff;
}

.product-accent-teal::before {
    background: #8edfd7;
}

.product-icon {
    width: 56px;
    height: 56px;
    border-radius: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(98, 65, 195, 0.10);
    color: #5f35c8;
    font-size: 1.3rem;
}

.product-title {
    font-weight: 800;
    margin-bottom: 1rem;
}

.product-text {
    color: #5b6170;
    margin-bottom: 1rem;
    min-height: 84px;
}

.product-chips {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
}

.product-chip {
    display: inline-flex;
    align-items: center;
    padding: .45rem .8rem;
    border-radius: 999px;
    background: #f5f7fb;
    font-size: .9rem;
    font-weight: 600;
    color: #334155;
}