﻿/* ===========================
   RESET & BASE
   =========================== */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
    --navy:   #0D1B2A;
    --blue:   #1E3A5F;
    --accent: #2563EB;
    --accent2:#1D4ED8;
    --white:  #FFFFFF;
    --offwhite:#F8FAFC;
    --gray:   #E2E8F0;
    --muted:  #64748B;
    --text:   #1E293B;
    --radius: 16px;
    --shadow: 0 4px 24px rgba(13,27,42,.07);
    --shadow-lg: 0 12px 48px rgba(13,27,42,.13);
}

html { scroll-behavior: smooth; font-size: 16px; }

body {
    font-family: 'Plus Jakarta Sans','Segoe UI',sans-serif;
    color: var(--text);
    background: var(--white);
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
}

a { text-decoration: none; color: inherit; }
ul { list-style: none; }
img { display: block; max-width: 100%; }

/* ===========================
   ANIMATIONS
   =========================== */
@keyframes fadeUp {
    from { opacity:0; transform:translateY(32px); }
    to   { opacity:1; transform:translateY(0); }
}
@keyframes fadeIn {
    from { opacity:0; }
    to   { opacity:1; }
}
@keyframes slideRight {
    from { opacity:0; transform:translateX(-28px); }
    to   { opacity:1; transform:translateX(0); }
}
@keyframes float {
    0%,100% { transform:translateY(0); }
    50%      { transform:translateY(-10px); }
}
@keyframes lineGrow {
    from { transform:scaleY(0); }
    to   { transform:scaleY(1); }
}
@keyframes countUp {
    from { opacity:0; transform:translateY(8px); }
    to   { opacity:1; transform:translateY(0); }
}

/* Scroll reveal */
.reveal, .reveal-left, .reveal-right {
    opacity: 0;
    transform: translateY(32px);
    transition: opacity .7s ease, transform .7s ease;
}
.reveal-left  { transform: translateX(-32px); }
.reveal-right { transform: translateX(32px); }
.reveal.visible, .reveal-left.visible, .reveal-right.visible {
    opacity: 1; transform: none;
}
.reveal-delay-1 { transition-delay:.1s; }
.reveal-delay-2 { transition-delay:.2s; }
.reveal-delay-3 { transition-delay:.3s; }
.reveal-delay-4 { transition-delay:.4s; }
.reveal-delay-5 { transition-delay:.5s; }

/* ===========================
   INTRO PANEL
   =========================== */
.intro-panel {
    position: fixed; inset: 0;
    z-index: 100;
    background: linear-gradient(135deg, #0D1B2A 0%, #1E3A5F 100%);
    transition: transform .9s cubic-bezier(.77,0,.18,1), opacity .9s ease;
    overflow: hidden;
}
.intro-panel.slide-up {
    transform: translateY(-100%);
    opacity: 0;
    pointer-events: none;
}
.video-bg {
    position: absolute; inset: 0;
    width: 100%; height: 100%;
    object-fit: cover; z-index: -2;
}
.overlay {
    position: absolute; inset: 0;
    background: linear-gradient(135deg, rgba(13,27,42,.82) 0%, rgba(30,58,95,.72) 100%);
    z-index: -1;
    transition: background .5s ease;
}
[data-theme="dark"] .overlay {
    background: linear-gradient(135deg, rgba(8,15,26,.60) 0%, rgba(15,30,55,.50) 100%);
}
.content {
    height: 100%;
    display: flex; flex-direction: column;
    align-items: flex-start; justify-content: center;
    padding: 0 8vw; max-width: 900px;
    color: var(--white);
}
.intro-eyebrow {
    font-size:.8rem; font-weight:600; letter-spacing:3px;
    text-transform:uppercase; color:rgba(255,255,255,.6);
    margin-bottom:20px;
    animation: fadeIn .6s ease both;
}
.content h1 {
    font-size: clamp(3.5rem, 9vw, 8rem);
    font-weight: 800; line-height: 1; letter-spacing:-3px;
    color: #fff;
    margin-bottom: 24px;
    animation: fadeUp .7s .1s ease both;
}
.content h1 em {
    font-style:normal;
    background: linear-gradient(135deg,#60A5FA,#2563EB);
    -webkit-background-clip:text; -webkit-text-fill-color:transparent;
    background-clip:text;
}
.intro-desc {
    font-size:1.15rem; line-height:1.7; max-width:520px;
    color:rgba(255,255,255,.75); margin-bottom:28px;
    animation: fadeUp .7s .2s ease both;
}
.intro-badges {
    display:flex; gap:10px; flex-wrap:wrap; margin-bottom:36px;
    animation: fadeUp .7s .3s ease both;
}
.badge {
    display:inline-flex; align-items:center; gap:6px;
    font-size:.8rem; font-weight:500;
    background:rgba(255,255,255,.1);
    border:1px solid rgba(255,255,255,.2);
    color:rgba(255,255,255,.9);
    padding:7px 14px; border-radius:100px;
    backdrop-filter:blur(6px);
}
.badge svg { flex-shrink:0; }
.intro-cta {
    display:flex; gap:14px; flex-wrap:wrap;
    animation: fadeUp .7s .4s ease both;
}
.btn-hero {
    padding:14px 34px; font-size:.95rem; font-weight:700;
    background:var(--accent); color:#fff;
    border:none; border-radius:100px; cursor:pointer;
    transition: all .25s ease; letter-spacing:.3px;
    font-family:inherit;
}
.btn-hero:hover { background:#1D4ED8; transform:translateY(-2px); box-shadow:0 8px 28px rgba(37,99,235,.5); }
.btn-hero-outline {
    padding:14px 34px; font-size:.95rem; font-weight:700;
    background:transparent; color:#fff;
    border:2px solid rgba(255,255,255,.4);
    border-radius:100px; cursor:pointer;
    transition: all .25s ease; letter-spacing:.3px;
}
.btn-hero-outline:hover { border-color:#fff; background:rgba(255,255,255,.1); }
.intro-scroll-hint {
    position:absolute; bottom:36px; left:50%; transform:translateX(-50%);
    display:flex; flex-direction:column; align-items:center; gap:10px;
    color:rgba(255,255,255,.4); font-size:.75rem; letter-spacing:2px;
    text-transform:uppercase;
    animation: fadeIn 1s .8s ease both;
}
.scroll-line {
    width:1px; height:40px;
    background:linear-gradient(to bottom,rgba(255,255,255,.3),transparent);
    transform-origin:top; animation: lineGrow 1.2s .8s ease both;
}

/* ===========================
   INTRO CONTROLS
   =========================== */
.intro-controls {
    position: absolute;
    top: 20px; right: 24px;
    display: flex; align-items: center; gap: 8px;
    z-index: 10;
    animation: fadeIn .8s .6s ease both;
}
.intro-ctrl-btn {
    display: flex; align-items: center; gap: 6px;
    height: 38px;
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 10px;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    color: rgba(255,255,255,.9);
    font-size: .9rem;
    cursor: pointer;
    padding: 0 13px;
    font-family: inherit;
    font-weight: 600;
    font-size: .82rem;
    letter-spacing: .3px;
    transition: background .2s, border-color .2s;
    white-space: nowrap;
}
.intro-ctrl-btn:hover {
    background: rgba(255,255,255,.22);
    border-color: rgba(255,255,255,.4);
}
.intro-lang-switcher { position: relative; }
.intro-lang-dropdown {
    position: absolute; top: calc(100% + 8px); right: 0;
    background: rgba(15,23,42,.92);
    border: 1px solid rgba(255,255,255,.15);
    border-radius: 12px; overflow: hidden;
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    box-shadow: 0 12px 36px rgba(0,0,0,.4);
    min-width: 156px;
    opacity: 0; visibility: hidden; transform: translateY(-6px);
    transition: all .2s ease; z-index: 200;
}
.intro-lang-switcher.open .intro-lang-dropdown {
    opacity: 1; visibility: visible; transform: translateY(0);
}
.intro-lang-dropdown .lang-option {
    color: rgba(255,255,255,.85);
    font-weight: 500;
}
.intro-lang-dropdown .lang-option:hover {
    background: rgba(255,255,255,.1);
    color: #fff;
}
.intro-lang-dropdown .lang-option.active { color: #60A5FA; font-weight: 700; }
@media(max-width:768px) {
    .intro-controls { top: 14px; right: 14px; gap: 6px; }
    .intro-ctrl-btn { height: 34px; padding: 0 10px; font-size: .78rem; }
}

/* fix "Firma" word always visible on intro dark overlay */
[data-theme="dark"] .intro-panel .content h1 { color: #fff; }
.navbar {
    position: sticky; top: 0; z-index: 50;
    background: rgba(255,255,255,.96);
    backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px);
    border-bottom: 1px solid transparent;
    transition: border-color .3s, box-shadow .3s;
}
.navbar.scrolled {
    border-color: var(--gray);
    box-shadow: 0 4px 32px rgba(13,27,42,.08);
}
.nav-container {
    max-width: 1200px; margin: 0 auto; padding: 0 36px;
    height: 76px; display:flex; align-items:center;
}
/* Logo */
.logo {
    flex-shrink:0; display:flex; align-items:center;
    margin-right: auto;
    transition: opacity .2s, transform .2s;
}
.logo:hover { opacity:.85; transform:scale(1.03); }
.nav-logo-img {
    height: 52px; width: auto; display:block;
    object-fit: contain;
}

/* Intro panel logo */
.intro-logo {
    height:100px; width:auto;
    margin-bottom:28px;
    filter: drop-shadow(0 6px 28px rgba(0,0,0,.5)) brightness(1.06);
    animation: fadeUp .6s ease both;
}

/* Footer logo */
.footer-logo-img {
    height:68px; width:auto; display:block;
    margin-bottom:18px;
    filter: drop-shadow(0 2px 12px rgba(0,0,0,.35));
    transition: filter .3s, transform .3s;
}
.footer-brand:hover .footer-logo-img {
    filter: drop-shadow(0 4px 20px rgba(37,99,235,.45)) brightness(1.06);
    transform: scale(1.04);
}

/* Nav links */
.nav-menu {
    display:flex; gap:2px; align-items:center;
}
.nav-menu a {
    font-size:.875rem; font-weight:500; color:var(--muted);
    padding:8px 16px; border-radius:8px;
    transition:all .2s; position:relative; white-space:nowrap;
}
.nav-menu a::after {
    content:''; position:absolute;
    bottom:2px; left:16px; right:16px; height:2px;
    background:var(--accent); border-radius:2px;
    transform:scaleX(0); transform-origin:center;
    transition:transform .25s ease;
}
.nav-menu a:hover {
    color:var(--navy); background:var(--offwhite);
}
.nav-menu a:hover::after { transform:scaleX(1); }
.nav-menu a.active {
    color:var(--navy); font-weight:600;
    background:var(--offwhite);
}
.nav-menu a.active::after { transform:scaleX(1); }

/* Divider before CTA */
.nav-divider {
    width:1px; height:28px; background:var(--gray);
    margin:0 20px; flex-shrink:0;
}

/* CTA Button */
.nav-cta {
    display:inline-flex; align-items:center; gap:8px;
    padding:11px 24px;
    background:linear-gradient(135deg, var(--navy) 0%, var(--blue) 100%);
    color:#fff; border-radius:100px;
    font-size:.875rem; font-weight:700;
    transition:all .25s; flex-shrink:0; white-space:nowrap;
    box-shadow: 0 2px 12px rgba(13,27,42,.2);
    letter-spacing:.2px;
}
.nav-cta:hover {
    background:linear-gradient(135deg, var(--accent) 0%, #3B82F6 100%);
    transform:translateY(-2px);
    box-shadow:0 6px 20px rgba(37,99,235,.4);
}
.nav-cta i { font-size:.75rem; transition:transform .25s; }
.nav-cta:hover i { transform:translateX(3px); }

/* Hamburger (mobile) */
.nav-hamburger {
    display:none; flex-direction:column; gap:5px;
    background:none; border:none; cursor:pointer; padding:6px;
    margin-left:auto;
}
.nav-hamburger span {
    display:block; width:24px; height:2px;
    background:var(--navy); border-radius:2px;
    transition:all .3s;
}
.nav-hamburger.open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.nav-hamburger.open span:nth-child(2) { opacity:0; transform:scaleX(0); }
.nav-hamburger.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

/* Nav controls (theme toggle + language) */
.nav-controls {
    display:flex; align-items:center; gap:8px;
    margin-left:12px; flex-shrink:0;
}
.theme-toggle {
    width:38px; height:38px;
    display:flex; align-items:center; justify-content:center;
    background:var(--offwhite); border:1px solid var(--gray);
    border-radius:10px; cursor:pointer;
    color:var(--muted); font-size:.95rem;
    transition:all .25s; flex-shrink:0;
}
.theme-toggle:hover {
    background:var(--accent); color:#fff; border-color:var(--accent);
    transform:rotate(20deg);
}
.lang-switcher { position:relative; }
.lang-btn {
    display:flex; align-items:center; gap:6px;
    padding:8px 12px;
    background:var(--offwhite); border:1px solid var(--gray);
    border-radius:10px; cursor:pointer;
    font-size:.82rem; font-weight:600; color:var(--text);
    font-family:inherit; transition:all .25s; white-space:nowrap;
}
.lang-btn:hover { background:var(--gray); }
.lang-chevron { font-size:.65rem; color:var(--muted); transition:transform .25s; }
.lang-switcher.open .lang-chevron { transform:rotate(180deg); }
.lang-dropdown {
    position:absolute; top:calc(100% + 8px); right:0;
    background:var(--white); border:1px solid var(--gray);
    border-radius:12px; overflow:hidden;
    box-shadow:0 8px 32px rgba(13,27,42,.12);
    min-width:152px;
    opacity:0; visibility:hidden; transform:translateY(-6px);
    transition:all .2s ease; z-index:200;
}
.lang-switcher.open .lang-dropdown { opacity:1; visibility:visible; transform:translateY(0); }
.lang-option {
    display:flex; align-items:center; gap:10px;
    width:100%; padding:11px 16px;
    background:none; border:none; cursor:pointer;
    font-size:.875rem; font-weight:500; color:var(--text);
    font-family:inherit; text-align:left; transition:background .15s;
}
.lang-option:hover { background:var(--offwhite); color:var(--navy); }
.lang-option.active { color:var(--accent); font-weight:700; }

/* ===========================
   STATS BAR
   =========================== */
.stats-bar {
    background: linear-gradient(135deg, #F0F4F8 0%, #E0E8F0 100%);
    padding: 36px 0;
    border-top: 3px solid var(--accent);
    position: relative;
}
.stats-inner {
    max-width:1200px; margin:0 auto; padding:0 32px;
    display:flex; align-items:center; justify-content:center; gap:0; flex-wrap:wrap;
}
.stat-item {
    display:flex; flex-direction:column; align-items:center;
    padding:0 56px;
}
.stat-number {
    font-size:2.6rem; font-weight:800;
    background: linear-gradient(135deg, #0A1525 20%, #1E3A5F 100%);
    -webkit-background-clip: text; -webkit-text-fill-color: transparent;
    background-clip: text;
    line-height:1; letter-spacing:-1px;
    animation:countUp .5s ease both;
}
.stat-label {
    font-size:.78rem; color:rgba(10,21,37,.6);
    margin-top:6px; letter-spacing:.5px; text-align:center;
}
.stat-sep { width:1px; height:48px; background:rgba(10,21,37,.15); }

/* ===========================
   BUTTONS (shared)
   =========================== */
.btn-primary {
    display:inline-flex; align-items:center; gap:6px;
    padding:13px 28px; font-size:.9rem; font-weight:700;
    background:var(--accent); color:#fff;
    border-radius:100px; border:2px solid var(--accent);
    transition:all .25s; cursor:pointer; font-family:inherit;
    letter-spacing:.2px;
}
.btn-primary:hover { background:var(--accent2); border-color:var(--accent2); transform:translateY(-2px); box-shadow:0 8px 24px rgba(37,99,235,.35); }

.btn-outline {
    display:inline-flex; align-items:center; gap:6px;
    padding:13px 28px; font-size:.9rem; font-weight:700;
    background:transparent; color:var(--navy);
    border-radius:100px; border:2px solid var(--navy);
    transition:all .25s; cursor:pointer; font-family:inherit;
}
.btn-outline:hover { background:var(--navy); color:#fff; transform:translateY(-2px); }

/* ===========================
   SECTION SHARED
   =========================== */
.section-head { margin-bottom:56px; }
.section-head h2 {
    font-size:clamp(2rem,4vw,3rem); font-weight:800;
    color:var(--navy); margin-bottom:12px; line-height:1.1; letter-spacing:-1px;
}
.section-head p { font-size:1rem; color:var(--muted); max-width:480px; line-height:1.7; }
.section-head--white h2 { color:#fff; }
.section-head--white p { color:rgba(255,255,255,.65); }
.sec-label {
    display:inline-flex; align-items:center; gap:8px;
    font-size:.72rem; font-weight:700;
    letter-spacing:2.5px; color:var(--accent); text-transform:uppercase;
    margin-bottom:14px;
}
.sec-label::before {
    content: '';
    display: inline-block; width: 6px; height: 6px;
    border-radius: 50%; background: var(--accent); flex-shrink: 0;
}
.sec-label--white { color:rgba(255,255,255,.5); }
.sec-label--white::before { background: rgba(96,165,250,.85); }
.section-inner { max-width:1200px; margin:0 auto; padding:0 32px; }
.section-cta { margin-top:48px; text-align:center; }
.accent-word { color:var(--accent); }

/* ===========================
   HERO TEXT SECTION
   =========================== */
.hero-text {
    padding:100px 0;
    background: var(--white);
    background-image: radial-gradient(circle, #CBD5E1 1.5px, transparent 1.5px);
    background-size: 28px 28px;
    position: relative;
    isolation: isolate;
}
.hero-text-inner { max-width:1200px; margin:0 auto; padding:0 32px; }
.ht-label {
    font-size:.72rem; font-weight:700; letter-spacing:2.5px;
    color:var(--accent); text-transform:uppercase; margin-bottom:14px;
}
.ht-heading {
    font-size:clamp(2.4rem,5vw,3.8rem); font-weight:800;
    color:var(--navy); line-height:1.1; letter-spacing:-1.5px;
    margin-bottom:56px;
}
.ht-grid { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:start; }
.ht-body p { font-size:1rem; color:var(--muted); line-height:1.8; margin-bottom:18px; }
.ht-body .btn-primary { margin-top:12px; }
.feat {
    display:grid; grid-template-columns:52px 1fr; gap:18px;
    align-items:start; padding:4px 0 28px 20px;
    border-left:3px solid var(--accent); margin-bottom:28px;
    transition: border-color .25s;
}
.feat:hover { border-left-color: var(--accent2); }
.feat:last-child { margin-bottom:0; padding-bottom:0; }
.feat-icon {
    font-size:1.15rem; color:var(--accent);
    background:linear-gradient(135deg, #EFF6FF 0%, #DBEAFE 100%);
    border:1px solid #BFDBFE;
    width:44px; height:44px;
    display:flex; align-items:center; justify-content:center;
    border-radius:12px; flex-shrink:0;
    box-shadow: 0 2px 10px rgba(37,99,235,.14);
    transition: transform .25s, box-shadow .25s;
}
.feat:hover .feat-icon {
    transform: scale(1.08);
    box-shadow: 0 4px 18px rgba(37,99,235,.25);
}
.feat strong { font-size:.95rem; color:var(--navy); display:block; margin-bottom:4px; }
.feat p { font-size:.85rem; color:var(--muted); line-height:1.65; margin:0; }

/* ===========================
   SERVICES SECTION
   =========================== */
.services-section {
    padding: 100px 0;
    background: var(--offwhite);
    position: relative;
    overflow: hidden;
    isolation: isolate;
}

/* Split header */
.svc-header {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: end;
    margin-bottom: 56px;
    padding-bottom: 40px;
    border-bottom: 2px solid var(--navy);
}
.svc-header-left .sec-label { margin-bottom: 12px; }
.svc-header-left h2 {
    font-size: clamp(2.4rem,5vw,3.4rem); font-weight: 800;
    color: var(--navy); letter-spacing: -1.5px; line-height: 1.05;
    margin: 0;
}
.svc-header-right {
    display: flex; flex-direction: column;
    align-items: flex-start; gap: 20px;
    padding-bottom: 6px;
}
.svc-header-right p {
    font-size: 1rem; color: var(--muted);
    line-height: 1.7; max-width: 340px; margin: 0;
}

/* Service rows */
.services-list { display: flex; flex-direction: column; }
.svc-row {
    display: grid;
    grid-template-columns: 52px 52px 1fr 32px;
    gap: 28px;
    align-items: center;
    padding: 28px 8px;
    border-bottom: 1px solid var(--gray);
    position: relative;
    transition: background .25s, padding-left .25s;
    border-radius: 0;
    text-decoration: none;
    color: inherit;
}
.svc-row::after {
    content: '';
    position: absolute;
    bottom: -1px; left: 0;
    width: 100%; height: 2px;
    background: linear-gradient(90deg, var(--accent), #60A5FA);
    transform: scaleX(0); transform-origin: left;
    transition: transform .35s ease;
}
.svc-row:hover { padding-left: 20px; background: var(--offwhite); border-radius: 12px; }
.svc-row:hover::after { transform: scaleX(1); }

.svc-row-num {
    font-size: .7rem; font-weight: 800;
    letter-spacing: 2px; color: var(--accent);
    font-family: inherit; line-height: 1;
    justify-self: start;
}
.svc-row-icon {
    width: 48px; height: 48px; flex-shrink: 0;
    background: var(--offwhite); border: 1px solid var(--gray);
    border-radius: 12px;
    display: flex; align-items: center; justify-content: center;
    font-size: 1.1rem; color: var(--accent);
    transition: background .25s, border-color .25s, color .25s;
}
.svc-row:hover .svc-row-icon {
    background: var(--accent); border-color: var(--accent); color: #fff;
}
.svc-row-body { min-width: 0; }
.svc-row-body h3 {
    font-size: 1.05rem; font-weight: 700;
    color: var(--navy); margin-bottom: 5px; line-height: 1.2;
    transition: color .25s;
}
.svc-row:hover .svc-row-body h3 { color: var(--accent); }
.svc-row-body p {
    font-size: .85rem; color: var(--muted);
    line-height: 1.6; margin: 0;
}
.svc-row-arrow {
    font-size: .95rem; color: var(--muted);
    transition: all .3s; justify-self: end;
}
.svc-row:hover .svc-row-arrow { color: var(--accent); transform: translateX(5px); }

/* ===========================
   TESTIMONIALS
   =========================== */
.testimonials-section {
    padding:100px 0;
    background:var(--offwhite);
}

.testimonials-section h2{
    color: #000;
}
.testi-grid {
    display:grid; grid-template-columns:repeat(3,1fr); gap:24px;
}
.testi-card {
    background:#fff;
    border:1px solid var(--gray);
    border-radius:var(--radius); padding:36px 32px;
    color:var(--navy); display:flex; flex-direction:column; gap:0;
    transition:all .3s; position:relative; overflow:hidden;
}
.testi-card::before {
    content: '\201C';
    position: absolute;
    top: -10px; right: 18px;
    font-size: 7.5rem; font-weight: 900;
    color: rgba(10,21,37,.065);
    line-height: 1; font-family: Georgia, serif;
    pointer-events: none; user-select: none;
}
.testi-card:hover {
    background:#fff;
    transform:translateY(-4px);
    box-shadow:var(--shadow-lg);
}
.testi-stars { color:#FBBF24; font-size:.9rem; letter-spacing:3px; margin-bottom:16px; }
.testi-card p { font-size:.925rem; line-height:1.75; color:rgba(10,21,37,.7); font-style:italic; flex:1; margin-bottom:24px; }
.testi-author { display:flex; align-items:center; gap:14px; margin-top:auto; padding-top:20px; border-top:1px solid var(--gray); }
.testi-av {
    width:44px; height:44px; border-radius:50%;
    background:linear-gradient(135deg,var(--accent),#60A5FA);
    color:#fff; font-weight:700; font-size:.85rem;
    display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.testi-author strong { font-size:.875rem; color:var(--navy); display:block; font-weight:600; }
.testi-author span { font-size:.78rem; color:rgba(10,21,37,.45); }

/* Google rating badge */
.google-rating-badge {
    display:flex; align-items:center; gap:16px;
    justify-content:center;
    margin:0 auto 48px;
    padding:16px 28px;
    background:#fff; border:1px solid var(--gray);
    border-radius:16px; width:fit-content;
}
.google-badge-logo { flex-shrink:0; display:block; }
.google-badge-info { display:flex; flex-direction:column; gap:3px; }
.google-badge-score {
    font-size:1.3rem; font-weight:800; color:var(--navy);
    display:flex; align-items:center; gap:8px; line-height:1;
}
.google-badge-stars { color:#FBBF24; font-size:.95rem; letter-spacing:2px; }
.google-badge-text { font-size:.76rem; color:rgba(10,21,37,.45); }

/* Card top row (avatar + meta + google mark) */
.testi-card-top {
    display:flex; align-items:center; gap:12px; margin-bottom:14px;
}
.testi-card-meta { min-width:0; flex:1; }
.testi-card-meta strong { font-size:.875rem; color:var(--navy); display:block; font-weight:600; line-height:1.2; }
.testi-date { font-size:.75rem; color:rgba(10,21,37,.45); }
.testi-google-mark { flex-shrink:0; display:block; }

/* Avatar color variants (Google palette) */
.testi-av--blue  { background:#4285F4; }
.testi-av--green { background:#34A853; }
.testi-av--red   { background:#EA4335; }
.testi-av--yellow{ background:#FBBC05; }

/* "See all on Google" CTA */
.testi-google-cta { display:flex; justify-content:center; margin-top:48px; }
.btn-google-reviews {
    display:inline-flex; align-items:center; gap:10px;
    padding:13px 28px; font-size:.9rem; font-weight:600;
    color:var(--navy); background:#fff;
    border:2px solid var(--gray); border-radius:100px;
    text-decoration:none; transition:all .25s;
}
.btn-google-reviews:hover {
    border-color:#4285F4; color:#4285F4;
    transform:translateY(-2px);
    box-shadow:0 8px 24px rgba(66,133,244,.18);
}

/* ===========================
   CTA SECTION
   =========================== */
.cta-section {
    padding:120px 0;
    background:linear-gradient(135deg,#1D4ED8 0%,#2563EB 50%,#3B82F6 100%);
    text-align:center; overflow:hidden; position:relative;
}
.cta-section::before {
    content:''; position:absolute;
    width:600px; height:600px; border-radius:50%;
    background:rgba(255,255,255,.04);
    top:-200px; right:-150px; pointer-events:none;
}
.cta-section::after {
    content:''; position:absolute;
    width:400px; height:400px; border-radius:50%;
    background:rgba(255,255,255,.04);
    bottom:-150px; left:-100px; pointer-events:none;
}
.cta-inner { position:relative; padding:0 32px; }
.cta-label {
    font-size:.72rem; font-weight:700; letter-spacing:3px;
    color:rgba(255,255,255,.55); text-transform:uppercase; margin-bottom:16px;
}
.cta-section h2 {
    font-size:clamp(2rem,5vw,3.5rem); font-weight:800;
    color:#fff; line-height:1.1; letter-spacing:-1.5px; margin-bottom:16px;
}
.cta-section p {
    font-size:1.05rem; color:rgba(255,255,255,.75);
    margin-bottom:40px; max-width:420px; margin-left:auto; margin-right:auto; line-height:1.7;
}
.cta-btns { display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
.btn-white-solid {
    padding:14px 34px; font-size:.9rem; font-weight:700;
    background:#fff; color:var(--accent);
    border-radius:100px; border:2px solid #fff;
    transition:all .25s; cursor:pointer;
}
.btn-white-solid:hover { background:transparent; color:#fff; transform:translateY(-2px); box-shadow:0 8px 24px rgba(0,0,0,.2); }
.btn-outline-white {
    padding:14px 34px; font-size:.9rem; font-weight:700;
    background:transparent; color:#fff;
    border-radius:100px; border:2px solid rgba(255,255,255,.4);
    transition:all .25s; cursor:pointer;
}
.btn-outline-white:hover { border-color:#fff; background:rgba(255,255,255,.1); }

/* ===========================
   FOOTER
   =========================== */
.site-footer {
    background:#fff;
    border-top: 3px solid transparent;
    border-image: linear-gradient(90deg, var(--accent) 0%, #60A5FA 50%, var(--accent) 100%) 1;
}
.footer-wrap {
    max-width:1200px; margin:0 auto; padding:72px 32px 48px;
    display:grid; grid-template-columns:1.8fr 1fr 1fr 1fr; gap:48px;
}
.footer-logo {
    font-size:1.8rem; font-weight:800; color:var(--navy);
    letter-spacing:-1px; margin-bottom:12px;
}
.footer-brand p { font-size:.875rem; color:rgba(10,21,37,.45); line-height:1.7; max-width:220px; }
.footer-col h4 {
    font-size:.72rem; font-weight:700; letter-spacing:2px;
    text-transform:uppercase; color:rgba(10,21,37,.35);
    margin-bottom:20px;
}
.footer-col ul { display:flex; flex-direction:column; gap:10px; }
.footer-col ul li a, .footer-col ul li {
    font-size:.875rem; color:rgba(10,21,37,.55);
    transition:color .2s;
}
.footer-col ul li a:hover { color:var(--navy); }
.footer-col ul li i { color:rgba(10,21,37,.3); margin-right:4px; font-size:.8rem; }
.footer-bottom {
    border-top:1px solid rgba(10,21,37,.08);
    text-align:center; padding:24px 32px;
    font-size:.8rem; color:rgba(10,21,37,.25);
}

/* ===========================
   SUBPAGE STYLES
   =========================== */
.subpage-body { background:var(--offwhite); }

/* About page - stat boxes */
.about-stats-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.about-stat-box {
    background:var(--white); border:1px solid var(--gray);
    border-radius:16px; padding:32px 24px; text-align:center; box-shadow:var(--shadow);
    border-top: 3px solid var(--accent);
    transition: transform .3s, box-shadow .3s;
}
.about-stat-box:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.about-stat-box--navy {
    background: linear-gradient(135deg, #F0F4F8 0%, #E0E8F0 100%);
    border-color:var(--gray); border-top-color: var(--accent); grid-column:1/-1;
}
.about-stat-num {
    font-size:2.8rem; font-weight:800; letter-spacing:-2px;
    background: linear-gradient(135deg, var(--navy) 0%, var(--accent) 100%);
    -webkit-background-clip: text; -webkit-text-fill-color: transparent;
    background-clip: text;
}
.about-stat-num--white {
    font-size:2.8rem; font-weight:800; letter-spacing:-2px;
    background: linear-gradient(135deg, var(--navy) 0%, var(--accent) 100%);
    -webkit-background-clip: text; -webkit-text-fill-color: transparent;
    background-clip: text;
}
.about-stat-label { font-size:.78rem; color:var(--muted); margin-top:6px; }
.about-stat-label--white { font-size:.78rem; color:rgba(10,21,37,.55); margin-top:6px; }

/* Contact - Map section */
.map-section {
    padding: 88px 0;
    background: linear-gradient(135deg, var(--white) 0%, #3f3f3f 100%);
    position: relative;
    overflow: hidden;
}
.map-section::before {
    content: '';
    position: absolute;
    width: 560px; height: 560px; border-radius: 50%;
    background: rgba(37,99,235,.12);
    top: -220px; right: -120px;
    pointer-events: none;
}
.map-section::after {
    content: '';
    position: absolute;
    width: 340px; height: 340px; border-radius: 50%;
    background: rgba(96,165,250,.07);
    bottom: -130px; left: -80px;
    pointer-events: none;
}
.map-inner {
    max-width: 1200px; margin: 0 auto; padding: 0 32px;
    position: relative; z-index: 1;
}
.map-header {
    margin-bottom: 40px;
    text-align: center;
}
.map-header .sec-label { color: rgba(96,165,250,.85); }
.map-header h2 {
    font-size: clamp(1.8rem,3vw,2.5rem); font-weight: 800;
    color: #fff; letter-spacing: -1px; margin-bottom: 10px;
}
.map-header p {
    font-size: .95rem; color: rgba(255,255,255,.5);
    line-height: 1.6;
}
.map-card {
    position: relative;
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.13);
    border-radius: 24px;
    padding: 20px;
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    box-shadow: 0 40px 100px rgba(0,0,0,.45), 0 0 0 1px rgba(255,255,255,.04) inset;
    transition: transform .4s ease, box-shadow .4s ease;
}
.map-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 56px 120px rgba(0,0,0,.5), 0 0 0 1px rgba(255,255,255,.06) inset;
}
.map-wrapper {
    border-radius: 14px; overflow: hidden;
    height: 460px;
    border: 1px solid rgba(255,255,255,.08);
}
.map-wrapper iframe { width: 100%; height: 100%; border: none; display: block; }
.map-pin-badge {
    position: absolute;
    bottom: 44px; left: 44px;
    background: #fff;
    border-radius: 14px;
    padding: 12px 18px;
    display: flex; align-items: center; gap: 12px;
    box-shadow: 0 12px 32px rgba(0,0,0,.25);
    animation: pinFloat 3.5s ease-in-out infinite;
    max-width: 240px;
}
.map-pin-badge i {
    font-size: 1.3rem;
    color: var(--accent);
    flex-shrink: 0;
}
.map-pin-badge div { display: flex; flex-direction: column; gap: 2px; overflow: hidden; }
.map-pin-badge strong {
    font-size: .85rem; font-weight: 700;
    color: var(--navy); white-space: nowrap;
}
.map-pin-badge span {
    font-size: .75rem; color: var(--muted);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
@keyframes pinFloat {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-7px); }
}

/* ===========================
   FLOATING PDF BUTTON
   =========================== */
.pdf-fab {
    position: fixed;
    right: 24px;
    bottom: 36px;
    z-index: 100;
    display: flex;
    align-items: center;
    gap: 0;
    text-decoration: none;
    filter: drop-shadow(0 8px 24px rgba(220,38,38,.35));
    animation: fabFloat 4s ease-in-out infinite;
}
.pdf-fab-icon {
    width: 52px; height: 52px; flex-shrink: 0;
    background: linear-gradient(135deg, #DC2626, #EF4444);
    border-radius: 16px;
    display: flex; align-items: center; justify-content: center;
    font-size: 1.4rem; color: #fff;
    transition: border-radius .3s, width .3s;
}
.pdf-fab-label {
    font-size: .78rem; font-weight: 700;
    letter-spacing: .5px;
    color: #fff;
    background: linear-gradient(135deg, #DC2626, #EF4444);
    padding: 0 16px 0 4px;
    height: 52px;
    display: flex; align-items: center;
    border-radius: 0 16px 16px 0;
    max-width: 0;
    overflow: hidden;
    white-space: nowrap;
    opacity: 0;
    transition: max-width .35s ease, opacity .25s ease, padding .35s ease;
    transition-delay: 0s;
}
.pdf-fab:hover .pdf-fab-label {
    max-width: 120px;
    opacity: 1;
    padding: 0 16px 0 8px;
}
.pdf-fab:hover .pdf-fab-icon {
    border-radius: 16px 0 0 16px;
}
.pdf-fab:hover {
    filter: drop-shadow(0 12px 32px rgba(220,38,38,.5));
}
@keyframes fabFloat {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-8px); }
}
@media(max-width:768px) {
    .pdf-fab { right: 16px; bottom: 24px; }
    .pdf-fab-icon { width: 46px; height: 46px; font-size: 1.2rem; border-radius: 13px; }
}

.page-hero {
    background: var(--offwhite);
    background-image: radial-gradient(circle, rgba(10,21,37,.08) 1.5px, transparent 1.5px);
    background-size: 28px 28px;
    padding:100px 32px 90px; text-align:center;
    position:relative; overflow:hidden;
    isolation: isolate;
}
.page-hero::before {
    content: '';
    position: absolute;
    width: 520px; height: 520px; border-radius: 50%;
    background: radial-gradient(circle, rgba(10,21,37,.08) 0%, transparent 70%);
    top: -200px; right: -160px; pointer-events: none; z-index: 0;
}
.page-hero > *:not(.phero-bg) { position: relative; z-index: 1; }
.page-hero::after {
    content:''; position:absolute; bottom:-1px; left:0; right:0;
    height:56px; background:#fff;
    clip-path:ellipse(55% 100% at 50% 100%);
}
.page-hero-eyebrow {
    font-size:.72rem; font-weight:700; letter-spacing:2.5px;
    text-transform:uppercase; color:rgba(10,21,37,.45);
    margin-bottom:14px; display:block;
}
.page-hero h1 {
    font-size:clamp(2.5rem,6vw,4rem); font-weight:800;
    color:var(--navy); letter-spacing:-1.5px; margin-bottom:14px; line-height:1.1;
}
.page-hero p { font-size:1rem; color:rgba(10,21,37,.6); max-width:520px; margin:0 auto; line-height:1.7; }

.page-body { max-width:1200px; margin:0 auto; padding:48px 32px 80px; position:relative; isolation:isolate; }

/* --- Offer Feature Grid --- */
.offer-grid {
    background: #fff;
    border-radius: var(--radius);
    padding: 44px 52px;
    margin-bottom: 72px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 28px 64px;
    border-top: 3px solid rgba(10,21,37,.15);
    box-shadow: var(--shadow-lg);
}
.offer-item { display: flex; gap: 18px; align-items: flex-start; }
.offer-item-icon {
    width: 46px; height: 46px; border-radius: 12px;
    background: rgba(10,21,37,.08); border: 1px solid rgba(10,21,37,.12);
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0; color: var(--accent); font-size: 1.1rem;
    transition: background .2s;
}
.offer-item:hover .offer-item-icon { background: rgba(10,21,37,.15); }
.offer-item strong { color: var(--navy); font-size: .95rem; font-weight: 600; display: block; margin-bottom: 5px; }
.offer-item span { color: rgba(10,21,37,.55); font-size: .82rem; line-height: 1.5; display: block; }

/* --- Service Detail Cards --- */
.svc-detail-card {
    background: var(--white);
    border-radius: var(--radius);
    border: 1px solid var(--gray);
    box-shadow: var(--shadow);
    overflow: hidden;
    margin-bottom: 20px;
    transition: all .3s;
    display: grid;
    grid-template-columns: 148px 1fr;
}
.svc-detail-card:hover { box-shadow: var(--shadow-lg); transform: translateY(-3px); border-color: transparent; }
.svc-detail-header {
    display: flex; flex-direction: column;
    align-items: center; justify-content: center;
    gap: 14px; padding: 32px 16px;
    background: linear-gradient(160deg, var(--navy) 0%, var(--blue) 100%);
}
.svc-detail-header.svc-amber { background: linear-gradient(160deg, #B45309, #F59E0B); }
.svc-detail-header.svc-purple { background: linear-gradient(160deg, #6D28D9, #8B5CF6); }
.svc-detail-header.svc-green { background: linear-gradient(160deg, #047857, #10B981); }
.svc-detail-header.svc-slate { background: linear-gradient(160deg, #0F172A, #1E3A5F); }
.svc-num { font-size: 2.8rem; font-weight: 900; color: rgba(255,255,255,.2); line-height: 1; letter-spacing: -2px; }
.svc-icon-wrap {
    width: 52px; height: 52px; border-radius: 14px;
    background: rgba(255,255,255,.15); border: 1px solid rgba(255,255,255,.2);
    display: flex; align-items: center; justify-content: center;
    font-size: 1.35rem; color: #fff;
}
.svc-detail-body { padding: 32px 40px; }
.svc-detail-body h3 { font-size: 1.25rem; font-weight: 700; color: var(--navy); margin-bottom: 8px; }
.svc-detail-body > p { font-size: .9rem; color: var(--muted); line-height: 1.8; margin-bottom: 16px; }
.svc-detail-body ul { padding-left: 18px; display: flex; flex-direction: column; gap: 6px; }
.svc-detail-body ul li { font-size: .86rem; color: var(--text); line-height: 1.7; }
.svc-detail-body ul li::marker { color: var(--accent); }

.steps-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    margin-top: 40px;
}
.step-card {
    background: var(--white);
    border: 1px solid var(--gray);
    border-radius: var(--radius);
    padding: 40px 36px;
    overflow: hidden;
    transition: all .3s;
}
.step-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); border-color: var(--accent); }
.step-card-num {
    font-size: 5rem; font-weight: 900;
    color: var(--gray); line-height: 1;
    margin-bottom: 20px; letter-spacing: -4px;
    transition: color .3s;
}
.step-card:hover .step-card-num { color: rgba(37,99,235,.18); }
.step-card h3 { font-size: 1.05rem; font-weight: 700; color: var(--navy); margin-bottom: 8px; }
.step-card p { font-size: .875rem; color: var(--muted); line-height: 1.75; margin: 0; }

.values-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:8px; }

/* Team Cards */
.team-av {
    width: 80px; height: 80px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-size: 1.6rem; font-weight: 800; color: #fff;
    margin: 0 auto 20px;
    box-shadow: 0 4px 24px rgba(0,0,0,.2);
    transition: transform .3s, box-shadow .3s;
}
.value-card:hover .team-av {
    transform: scale(1.07);
    box-shadow: 0 8px 32px rgba(37,99,235,.3);
}
.team-grid {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 24px;
}
.team-card {
    text-align: center;
}
.team-name { font-size:1rem; font-weight:700; color:var(--navy); margin-bottom:4px; }
.team-role { font-size:.8rem; color:var(--accent); font-weight:600; margin-bottom:10px; display:block; }
.value-card {
    background:var(--white); border-radius:var(--radius);
    border:1px solid var(--gray); box-shadow:var(--shadow);
    border-top: 3px solid var(--gray);
    padding:36px 28px; transition:all .3s;
    position: relative; overflow: hidden;
}
.value-card::after {
    content: '';
    position: absolute; top: 0; left: 0; right: 0; height: 2px;
    background: linear-gradient(90deg, var(--accent), #60A5FA);
    opacity: 0; transition: opacity .3s;
}
.value-card:hover { transform:translateY(-6px); box-shadow:var(--shadow-lg); border-top-color: var(--accent); }
.value-card:hover::after { opacity: 1; }
.value-icon {
    width: 48px; height: 48px; border-radius: 14px;
    background: linear-gradient(135deg, #EFF6FF 0%, #DBEAFE 100%);
    border: 1px solid #BFDBFE;
    display: flex; align-items: center; justify-content: center;
    font-size: 1.2rem; color: var(--accent);
    margin-bottom: 20px;
    box-shadow: 0 2px 10px rgba(37,99,235,.12);
    transition: transform .25s, box-shadow .25s;
}
.value-card:hover .value-icon {
    transform: scale(1.1) rotate(-4deg);
    box-shadow: 0 5px 20px rgba(37,99,235,.24);
}
.value-card h3 { font-size:1rem; font-weight:700; color:var(--navy); margin-bottom:8px; }
.value-card p { font-size:.875rem; color:var(--muted); line-height:1.65; }

.faq-list { display:flex; flex-direction:column; gap:8px; margin-top:8px; }
.faq-item { background:var(--white); border:1px solid var(--gray); border-radius:12px; overflow:hidden; transition:border-color .2s, box-shadow .2s; }
.faq-item:hover { box-shadow: var(--shadow); }
.faq-item.open { border-color:var(--accent); box-shadow: 0 4px 20px rgba(37,99,235,.12); }
.faq-btn {
    width:100%; text-align:left; background:none; border:none; cursor:pointer;
    padding:22px 28px; font-size:.95rem; font-weight:600; color:var(--navy);
    font-family:inherit; display:flex; justify-content:space-between; align-items:center; gap:12px;
}
.faq-btn:hover { color:var(--accent); }
.faq-icon { font-size:.75rem; color:var(--accent); transition:transform .3s; flex-shrink:0; }
.faq-icon::before { content: '\f078'; font-family: 'Font Awesome 6 Free'; font-weight: 900; }
.faq-item.open .faq-icon { transform:rotate(180deg); }
.faq-body { max-height:0; overflow:hidden; transition:max-height .35s ease, padding .35s ease; padding:0 28px; background:var(--offwhite); }
.faq-item.open .faq-body { max-height:200px; padding:18px 28px; }
.faq-body p { font-size:.875rem; color:var(--muted); line-height:1.8; margin:0; }

.contact-wrap {
    display:grid; grid-template-columns:1.3fr 1fr; gap:60px; align-items:start;
}
.contact-form-card {
    background:var(--white); border-radius:var(--radius);
    border:1px solid var(--gray); box-shadow:var(--shadow); padding:44px;
}
.form-group { margin-bottom:20px; }
.form-group label { display:block; font-size:.8rem; font-weight:600; color:var(--navy); margin-bottom:7px; letter-spacing:.3px; }
.form-group input, .form-group textarea, .form-group select {
    width:100%; padding:12px 16px;
    background:var(--offwhite); border:1.5px solid var(--gray);
    border-radius:10px; color:var(--text); font-family:inherit; font-size:.9rem;
    outline:none; transition:border-color .2s, box-shadow .2s; box-sizing:border-box;
}
.form-group input::placeholder, .form-group textarea::placeholder { color:#A0AEC0; }
.form-group input:focus, .form-group textarea:focus, .form-group select:focus {
    border-color:var(--accent); box-shadow:0 0 0 3px rgba(37,99,235,.12);
}
.form-group textarea { resize:vertical; min-height:100px; }
.form-group select { appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748B' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.btn-submit {
    width:100%; padding:15px; font-size:.95rem; font-weight:700;
    background:var(--navy); color:#fff; border:none; border-radius:100px;
    cursor:pointer; font-family:inherit; transition:all .25s; margin-top:8px;
}
.btn-submit:hover { background:var(--accent); transform:translateY(-2px); box-shadow:0 8px 24px rgba(37,99,235,.35); }
.contact-info-panel { padding-top:8px; }
.contact-info-panel h3 { font-size:1.25rem; font-weight:700; color:var(--navy); margin-bottom:28px; }
.cinfo-item { display:flex; gap:16px; align-items:flex-start; margin-bottom:28px; }
.cinfo-icon {
    width:44px; height:44px; border-radius:12px;
    background: linear-gradient(135deg, #EFF6FF 0%, #DBEAFE 100%);
    border:1px solid #BFDBFE;
    display:flex; align-items:center; justify-content:center;
    font-size:1.1rem; flex-shrink:0; color:var(--accent);
    box-shadow: 0 2px 10px rgba(37,99,235,.12);
    transition: transform .2s, box-shadow .2s;
}
.cinfo-item:hover .cinfo-icon {
    transform: scale(1.08);
    box-shadow: 0 4px 16px rgba(37,99,235,.22);
}
.cinfo-item strong { display:block; font-size:.875rem; font-weight:600; color:var(--navy); margin-bottom:3px; }
.cinfo-item p { font-size:.875rem; color:var(--muted); line-height:1.6; margin:0; }
.response-badge {
    background: linear-gradient(to right, rgba(37,99,235,.05), var(--offwhite));
    border:1px solid var(--gray);
    border-left: 3px solid var(--accent);
    border-radius:12px; padding:20px 22px; margin-top:12px;
}
.response-badge strong { display:block; font-size:.875rem; color:var(--navy); margin-bottom:4px; }
.response-badge p { font-size:.8rem; color:var(--muted); margin:0; line-height:1.6; }

/* ===========================
   RESPONSIVE
   =========================== */
@media(max-width:1024px){
    .svc-header { grid-template-columns:1fr; gap:20px; align-items:start; }
    .svc-header-right { flex-direction:row; align-items:center; justify-content:space-between; }
    .testi-grid { grid-template-columns:repeat(2,1fr); }
    .ht-grid { grid-template-columns:1fr; gap:40px; }
    .footer-wrap { grid-template-columns:1fr 1fr; gap:36px; }
    .values-grid { grid-template-columns:repeat(2,1fr); }
    .team-grid { grid-template-columns:repeat(2,1fr); }
    .contact-wrap { grid-template-columns:1fr; gap:36px; }
}
@media(max-width:768px){
    .stat-item { padding:0 24px; }
    .stat-sep { height:36px; }
    .offer-grid { grid-template-columns:1fr; padding:28px; gap:20px; }
    .svc-detail-card { grid-template-columns:1fr; }
    .svc-detail-header { flex-direction:row; justify-content:flex-start; padding:18px 24px; gap:14px; border-radius:0; }
    .svc-num { font-size:2rem; }
    .steps-grid { grid-template-columns:1fr; gap:14px; }
    .step-card { padding:28px 24px; }
    .step-card-num { font-size:3.5rem; margin-bottom:12px; }
    .svc-header-right { flex-direction:column; align-items:flex-start; }
    .svc-row { grid-template-columns:40px 44px 1fr 24px; gap:14px; padding:22px 8px; }
    .svc-row:hover { padding-left:14px; }
    .svc-row-icon { width:44px; height:44px; font-size:1rem; border-radius:10px; }
    .testi-grid { grid-template-columns:1fr; }
    .values-grid { grid-template-columns:1fr; }
    .team-grid { grid-template-columns:1fr; }
    .footer-wrap { grid-template-columns:1fr; gap:28px; }
    .nav-divider, .nav-cta { display:none; }
    /* Navbar mobile layout: logo left, controls+hamburger right */
    .nav-container { padding: 0 14px; gap: 6px; }
    .logo { margin-right: auto; flex-shrink: 0; }
    .nav-controls { margin-left: 0; gap:6px; flex-shrink:0; }
    /* Compact theme toggle on mobile */
    .theme-toggle { width:34px; height:34px; font-size:.85rem; flex-shrink:0; }
    /* Language button: show only flag, hide text and chevron */
    .lang-btn { padding:6px 9px; gap:0; flex-shrink:0; }
    .lang-chevron { display:none; }
    #langCode, #introLangCode { display:none; }
    .nav-hamburger { display:flex; margin-left:0; flex-shrink:0; }
    .nav-menu {
        display:none; flex-direction:column; gap:0;
        position:absolute; top:76px; left:0; right:0;
        background:rgba(255,255,255,.98);
        backdrop-filter:blur(24px);
        border-bottom:1px solid var(--gray);
        padding:12px 16px 20px;
        box-shadow: 0 12px 32px rgba(13,27,42,.1);
        z-index: 99;
    }
    .nav-menu.open { display:flex; }
    .nav-menu li { display:block; }
    .nav-menu a {
        display:block;
        white-space:normal;
        padding:14px 16px; font-size:.95rem;
        border-radius:10px; border-bottom:none;
    }
    .nav-menu a::after { display:none; }
    .navbar { position:sticky; }
    .contact-form-card { padding:28px 24px; }
    .form-row { grid-template-columns:1fr; }
    .content { padding:0 6vw; }
    .hero-text, .services-section, .testimonials-section, .cta-section { padding:72px 0; }
    .map-wrapper { height:300px; }
    .map-pin-badge { bottom:28px; left:28px; padding:10px 14px; max-width:190px; }
    .map-card { padding:14px; }
    .values-grid { grid-template-columns:1fr; }
}

/* ===========================
   DARK MODE
   =========================== */
[data-theme="dark"] {
    --white:     #0F172A;
    --offwhite:  #1E293B;
    --gray:      #334155;
    --muted:     #94A3B8;
    --text:      #CBD5E1;
    --shadow:    0 4px 24px rgba(0,0,0,.35);
    --shadow-lg: 0 12px 48px rgba(0,0,0,.55);
}

/* --- Navbar --- */
[data-theme="dark"] .navbar { background:rgba(15,23,42,.97); }
[data-theme="dark"] .navbar.scrolled { box-shadow:0 4px 32px rgba(0,0,0,.45); }
[data-theme="dark"] .nav-menu a { color:#94A3B8; }
[data-theme="dark"] .nav-menu a:hover,
[data-theme="dark"] .nav-menu a.active { color:#E2E8F0; background:#1E293B; }
[data-theme="dark"] .nav-hamburger span { background:#E2E8F0; }
[data-theme="dark"] .nav-menu { background:rgba(15,23,42,.98); border-color:#334155; }
[data-theme="dark"] .theme-toggle { background:#1E293B; border-color:#334155; color:#94A3B8; }
[data-theme="dark"] .theme-toggle:hover { background:var(--accent); color:#fff; border-color:var(--accent); }
[data-theme="dark"] .lang-btn { background:#1E293B; border-color:#334155; color:#CBD5E1; }
[data-theme="dark"] .lang-btn:hover { background:#334155; }
[data-theme="dark"] .lang-dropdown { background:#1E293B; border-color:#334155; box-shadow:0 8px 32px rgba(0,0,0,.55); }
[data-theme="dark"] .lang-option { color:#CBD5E1; }
[data-theme="dark"] .lang-option:hover { background:#0F172A; color:#E2E8F0; }

/* --- Broad heading override for light-bg sections --- */
[data-theme="dark"] .hero-text .ht-heading,
[data-theme="dark"] .hero-text .ht-label,
[data-theme="dark"] .page-body h2,
[data-theme="dark"] .page-body h3,
[data-theme="dark"] .page-body .ht-heading,
[data-theme="dark"] .page-body .ht-label,
[data-theme="dark"] .page-body .sec-label { color:#E2E8F0 !important; }
[data-theme="dark"] .page-body .sec-label { color:var(--accent) !important; }
[data-theme="dark"] .page-body p { color:#94A3B8; }
[data-theme="dark"] .page-body .ht-body p { color:#94A3B8; }

/* --- Index: hero text + services --- */
[data-theme="dark"] .ht-heading { color:#E2E8F0 !important; }
[data-theme="dark"] .ht-label { color:var(--accent) !important; }
[data-theme="dark"] .hero-text {
    background-image: radial-gradient(circle, #1E293B 1.5px, transparent 1.5px);
}
[data-theme="dark"] .section-head h2 { color:#E2E8F0 !important; }
[data-theme="dark"] .feat strong { color:#E2E8F0; }
[data-theme="dark"] .feat { border-left-color:#334155; }
[data-theme="dark"] .feat-icon {
    background: linear-gradient(135deg, #1E293B 0%, #1e3a5f 100%);
    border-color: #334155; color:var(--accent);
}
[data-theme="dark"] .svc-header { border-bottom-color: #334155; }
[data-theme="dark"] .svc-header-left h2 { color: #E2E8F0; }
[data-theme="dark"] .svc-row { border-bottom-color: #1E293B; }
[data-theme="dark"] .svc-row:hover { background: #1E293B; }
[data-theme="dark"] .svc-row-icon { background: #1E293B; border-color: #334155; }
[data-theme="dark"] .svc-row-body h3 { color: #E2E8F0; }
[data-theme="dark"] .svc-icon { background:#1E293B; border-color:#334155; }

/* --- Team --- */
[data-theme="dark"] .team-name { color: #E2E8F0 !important; }
[data-theme="dark"] .team-av { box-shadow: 0 4px 24px rgba(0,0,0,.45); }

/* --- About page: stat boxes --- */
[data-theme="dark"] .about-stat-box { background:var(--navy); border-color:#334155; border-top-color: var(--accent); }
[data-theme="dark"] .about-stat-box:hover { box-shadow: var(--shadow-lg); }
[data-theme="dark"] .about-stat-box--navy {
    background: linear-gradient(135deg, #0F172A 0%, #1A2F4D 100%);
    border-color: #334155;
}
[data-theme="dark"] .about-stat-num {
    background: linear-gradient(135deg, #E2E8F0 0%, #60A5FA 100%);
    -webkit-background-clip: text; -webkit-text-fill-color: transparent;
    background-clip: text;
}
[data-theme="dark"] .about-stat-num--white {
    background: linear-gradient(135deg, #E2E8F0 0%, #60A5FA 100%);
    -webkit-background-clip: text; -webkit-text-fill-color: transparent;
    background-clip: text;
}
[data-theme="dark"] .about-stat-label { color:#94A3B8; }
[data-theme="dark"] .about-stat-label--white { color:rgba(229,231,235,.7); }

/* --- About page: value & team cards --- */
[data-theme="dark"] .value-card { background:var(--offwhite); border-color:#334155; border-top-color:#334155; }
[data-theme="dark"] .value-card:hover { border-top-color:var(--accent); }
[data-theme="dark"] .value-card h3 { color:#E2E8F0 !important; }
[data-theme="dark"] .value-icon { background:linear-gradient(135deg,#1E293B,#1e3a5f); border-color:#334155; }

/* --- Services (uslugi) detail cards --- */
[data-theme="dark"] .svc-detail-card { background:var(--offwhite); border-color:#334155; }
[data-theme="dark"] .svc-detail-body h3 { color:#E2E8F0 !important; }
[data-theme="dark"] .svc-detail-body ul li { color:#94A3B8; }

/* --- Steps grid --- */
[data-theme="dark"] .step-card { background:var(--offwhite); border-color:#334155; }
[data-theme="dark"] .step-card:hover { border-color:var(--accent); }
[data-theme="dark"] .step-card h3 { color:#E2E8F0 !important; }
[data-theme="dark"] .step-card-num { color:#334155 !important; }
[data-theme="dark"] .step-card:hover .step-card-num { color:rgba(96,165,250,.2) !important; }

/* --- FAQ --- */
[data-theme="dark"] .faq-item { border-color:#334155; background:var(--offwhite); }
[data-theme="dark"] .faq-btn { color:#E2E8F0 !important; }
[data-theme="dark"] .faq-body { background:#0F172A; }
[data-theme="dark"] .faq-item.open { border-color:var(--accent); }

/* --- Contact page --- */
[data-theme="dark"] .contact-form-card { background:var(--offwhite); border-color:#334155; }
[data-theme="dark"] .contact-form-card h2 { color:#E2E8F0 !important; }
[data-theme="dark"] .contact-info-panel h3 { color:#E2E8F0 !important; }
[data-theme="dark"] .form-group label { color:#94A3B8 !important; }
[data-theme="dark"] .form-group input,
[data-theme="dark"] .form-group select,
[data-theme="dark"] .form-group textarea {
    background:var(--white); border-color:#334155; color:#CBD5E1;
}
[data-theme="dark"] .form-group input::placeholder,
[data-theme="dark"] .form-group textarea::placeholder { color:#475569; }
[data-theme="dark"] .cinfo-icon { background:linear-gradient(135deg,#1E293B,#1e3a5f); border-color:#334155; }
[data-theme="dark"] .cinfo-item strong { color:#E2E8F0 !important; }
[data-theme="dark"] .response-badge { background: linear-gradient(to right, rgba(37,99,235,.08), var(--offwhite)); border-color:#334155; border-left-color:var(--accent); }
[data-theme="dark"] .response-badge strong { color:#E2E8F0 !important; }

/* --- Map section --- */
[data-theme="dark"] .map-card { background:rgba(255,255,255,.04); border-color:rgba(255,255,255,.1); }
[data-theme="dark"] .map-pin-badge { background:#1E293B; border:1px solid #334155; }
[data-theme="dark"] .map-pin-badge strong { color:#E2E8F0; }
[data-theme="dark"] .map-pin-badge span { color:#94A3B8; }

/* --- Buttons --- */
[data-theme="dark"] .btn-outline { color:#E2E8F0; border-color:#334155; }
[data-theme="dark"] .btn-outline:hover { background:#334155; color:#E2E8F0; }
[data-theme="dark"] .btn-submit { background:var(--accent); }

/* --- Page hero --- */
[data-theme="dark"] .page-hero { background:#0A1628; }
[data-theme="dark"] .page-hero::after { background:var(--offwhite); }

/* --- Stats bar --- */
[data-theme="dark"] .stats-bar { background: linear-gradient(135deg, #0F172A 0%, #1A2F4D 100%); border-top-color: var(--accent); }
[data-theme="dark"] .stat-number {
    background: linear-gradient(135deg, #E2E8F0 0%, #60A5FA 100%);
    -webkit-background-clip: text; -webkit-text-fill-color: transparent;
    background-clip: text;
}
[data-theme="dark"] .stat-label { color:rgba(148,163,184,.6); }
[data-theme="dark"] .stat-sep { background:rgba(255,255,255,.08); }

/* --- Testimonials --- */
[data-theme="dark"] .testimonials-section { background:#0F172A; }
[data-theme="dark"] .testi-card {
    background:rgba(255,255,255,.04);
    border-color:rgba(255,255,255,.08);
}
[data-theme="dark"] .testi-card:hover {
    background:rgba(255,255,255,.07);
    box-shadow:0 16px 48px rgba(0,0,0,.45);
}
[data-theme="dark"] .testi-card p { color:rgba(229,231,235,.8); }
[data-theme="dark"] .testi-author { border-top-color:rgba(255,255,255,.06); }
[data-theme="dark"] .testi-author span { color:rgba(148,163,184,.5); }
[data-theme="dark"] .testi-author div strong { color: #fff;}

[data-theme="dark"] .google-rating-badge {
    background:rgba(255,255,255,.04); border-color:rgba(255,255,255,.08);
}
[data-theme="dark"] .google-badge-score { color:#E2E8F0; }
[data-theme="dark"] .google-badge-text { color:rgba(148,163,184,.5); }
[data-theme="dark"] .testi-card-meta strong { color:#E2E8F0; }
[data-theme="dark"] .testi-date { color:rgba(148,163,184,.5); }
[data-theme="dark"] .btn-google-reviews {
    background:rgba(255,255,255,.04); border-color:rgba(255,255,255,.1); color:#E2E8F0;
}
[data-theme="dark"] .btn-google-reviews:hover { border-color:#4285F4; color:#4285F4; }
 
/* --- Footer --- */
[data-theme="dark"] .site-footer { background:#0A1628; }
[data-theme="dark"] .site-footer { border-image: linear-gradient(90deg, var(--accent) 0%, #3B82F6 50%, var(--accent) 100%) 1; }
[data-theme="dark"] .footer-logo { color:#E2E8F0; }
[data-theme="dark"] .footer-brand p { color:rgba(148,163,184,.5); }
[data-theme="dark"] .footer-col h4 { color:rgba(148,163,184,.4); }
[data-theme="dark"] .footer-col ul li a,
[data-theme="dark"] .footer-col ul li { color:rgba(148,163,184,.55); }
[data-theme="dark"] .footer-col ul li a:hover { color:#E2E8F0; }
[data-theme="dark"] .footer-col ul li i { color:rgba(148,163,184,.3); }
[data-theme="dark"] .footer-bottom {
    border-top-color:rgba(255,255,255,.08);
    color:rgba(148,163,184,.25);
}

/* --- Offer grid --- */
[data-theme="dark"] .offer-grid {
    background: linear-gradient(135deg, #0F172A 0%, #1A2F4D 100%);
    border-top-color: rgba(96,165,250,.25);
}
[data-theme="dark"] .offer-item-icon {
    background: rgba(96,165,250,.12);
    border-color: rgba(96,165,250,.2);
    color: #60A5FA;
}
[data-theme="dark"] .offer-item:hover .offer-item-icon { background: rgba(96,165,250,.2); }
[data-theme="dark"] .offer-item strong { color: #E2E8F0; }
[data-theme="dark"] .offer-item span { color: rgba(148,163,184,.55); }

/* --- Page hero --- */
[data-theme="dark"] .page-hero {
    background: var(--navy);
    background-image: radial-gradient(circle, rgba(96,165,250,.13) 1.5px, transparent 1.5px);
}
[data-theme="dark"] .page-hero::before {
    background: radial-gradient(circle, rgba(37,99,235,.22) 0%, transparent 70%);
}
[data-theme="dark"] .page-hero::after { background:var(--offwhite); }
[data-theme="dark"] .page-hero-eyebrow { color:rgba(255,255,255,.45); }
[data-theme="dark"] .page-hero h1 { color:#fff; }
[data-theme="dark"] .page-hero p { color:rgba(255,255,255,.6); }

/* ===================================================
   PHOTO BACKGROUNDS — shared system (all pages)
   Zdjęcia dekoracyjne w tle, modernistyczny styl
   =================================================== */

/* --- Page-hero photo layer (subpages) --- */
.phero-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    z-index: -1;                 /* contained within isolated page-hero stacking context */
    opacity: .14;
    filter: grayscale(55%) brightness(.65) contrast(1.05);
    mix-blend-mode: luminosity;
    pointer-events: none;
    transition: opacity .5s ease;
}

/* --- Universal background strip element --- */
.bg-strip {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    pointer-events: none;
    z-index: -1;                 /* always behind in-flow content; container must have isolation:isolate */
}

/* Ensure page-body content layers correctly over its bg-strip */
.page-body > *:not(.bg-strip) { position: relative; z-index: 0; }

/* --- Shape variants via clip-path --- */

/* Diagonal parallelogram across full width */
.bg-strip--slash {
    clip-path: polygon(0 16%, 100% 0, 100% 84%, 0 100%);
    opacity: .07;
    filter: grayscale(65%) brightness(.55) contrast(1.1);
}

/* Right-side angled wedge — wide triangle from center-left to right edge */
.bg-strip--tilt-r {
    clip-path: polygon(48% 0, 100% 0, 100% 100%, 36% 100%);
    opacity: .09;
    filter: grayscale(30%) brightness(.72) contrast(1.05);
}

/* Left-side angled wedge */
.bg-strip--tilt-l {
    clip-path: polygon(0 0, 52% 0, 40% 100%, 0 100%);
    opacity: .09;
    filter: grayscale(30%) brightness(.72) contrast(1.05);
}

/* Elliptical blob — right side accent */
.bg-strip--ellipse-r {
    clip-path: ellipse(50% 46% at 82% 52%);
    opacity: .10;
    filter: grayscale(45%) brightness(.65);
}

/* Large diagonal band — bottom-heavy */
.bg-strip--slash-heavy {
    clip-path: polygon(0 40%, 100% 0, 100% 100%, 0 100%);
    opacity: .08;
    filter: grayscale(60%) brightness(.58) contrast(1.08);
}

/* Trapezoid — top-left accent block */
.bg-strip--trap-tl {
    clip-path: polygon(0 0, 58% 0, 44% 100%, 0 100%);
    opacity: .08;
    filter: grayscale(50%) brightness(.62);
}

/* Page-body accent — used with z-index:-1 inside isolated page-body */
.bg-strip--page {
    clip-path: polygon(55% 0, 100% 0, 100% 100%, 45% 100%);
    opacity: .055;
    filter: grayscale(70%) brightness(.5) contrast(1.1);
}

/* ===========================
   PARALLAX PHOTO BANNER (index.html mid-page)
   =========================== */
.photo-banner {
    position: relative;
    height: 440px;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}
.photo-banner-bg {
    position: absolute;
    inset: -80px 0;
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    filter: grayscale(35%) brightness(.78);
    transition: filter .6s ease;
    z-index: 0;
}
.photo-banner:hover .photo-banner-bg { filter: grayscale(10%) brightness(.88); }
.photo-banner-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(125deg, rgba(13,27,42,.86) 0%, rgba(30,58,95,.7) 60%, rgba(37,99,235,.35) 100%);
    z-index: 1;
}
.photo-banner-content {
    position: relative;
    z-index: 2;
    text-align: center;
    padding: 0 32px;
    max-width: 720px;
}
.pb-eyebrow {
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: 4px;
    text-transform: uppercase;
    color: rgba(255,255,255,.5);
    margin-bottom: 18px;
    display: block;
}
.pb-heading {
    font-size: clamp(1.8rem, 4vw, 3rem);
    font-weight: 800;
    color: #fff;
    line-height: 1.12;
    letter-spacing: -1.5px;
    margin-bottom: 32px;
}
.pb-heading em {
    font-style: normal;
    background: linear-gradient(135deg,#60A5FA,#2563EB);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}
.photo-banner-content::before {
    content: '';
    display: block;
    width: 36px;
    height: 3px;
    background: var(--accent);
    margin: 0 auto 22px;
    border-radius: 2px;
}
@media (max-width: 768px) {
    .photo-banner { height: 360px; }
    .photo-banner-bg { background-attachment: scroll; inset: 0; }
}

/* ===========================
   CTA PHOTO BACKGROUND
   =========================== */
.cta-photo-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    opacity: .16;
    mix-blend-mode: luminosity;
    z-index: 0;
    filter: grayscale(55%);
    pointer-events: none;
}
.cta-section {
    position: relative;
    overflow: hidden;
}
.cta-section .cta-inner {
    position: relative;
    z-index: 1;
}
@media (max-width: 768px) {
    .cta-photo-bg { background-attachment: scroll; }
}

/* ===========================
   DARK MODE — photo bg adjustments
   =========================== */
[data-theme="dark"] .phero-bg  { opacity: .09 !important; filter: grayscale(70%) brightness(.5) !important; }
[data-theme="dark"] .bg-strip  { opacity: .035 !important; filter: grayscale(80%) brightness(.4) !important; }
[data-theme="dark"] .photo-banner-bg { filter: grayscale(60%) brightness(.55) !important; }
[data-theme="dark"] .cta-photo-bg    { opacity: .10 !important; }

.team-grid {
    display: flex;
    justify-content: center;
    gap: 40px;
    flex-wrap: wrap;
}

.team-card {
    width: 320px;
    min-height: 220px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

/* ===========================
   MOBILE RESPONSIVE ADDITIONS
   =========================== */
@media (max-width: 768px) {
    /* Stats bar — 2×2 grid, hide separators */
    .stat-sep { display: none !important; }
    .stats-inner {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 0;
        padding: 4px 8px;
    }
    .stat-item {
        padding: 20px 12px;
        border-right: 1px solid rgba(10,21,37,.10);
        border-bottom: 1px solid rgba(10,21,37,.10);
    }
    /* Remove right border from right-column items (children 3 & 7 in DOM due to sep elements) */
    .stat-item:nth-child(3),
    .stat-item:nth-child(7) { border-right: none; }
    /* Remove bottom border from bottom-row items (children 5 & 7) */
    .stat-item:nth-child(5),
    .stat-item:nth-child(7) { border-bottom: none; }
    .stat-number { font-size: 2rem; }
    .stat-label  { font-size: .72rem; }

    /* Page hero */
    .page-hero { padding: 56px 20px 52px; }
    .page-hero h1 { font-size: clamp(1.9rem, 7vw, 2.6rem); letter-spacing: -1px; }
    .page-hero p  { font-size: .9rem; }

    /* Page body */
    .page-body { padding: 36px 16px 60px; }

    /* Hero text inner */
    .hero-text-inner { padding: 0 16px; }

    /* Service detail card body */
    .svc-detail-body { padding: 24px 20px; }

    /* About stats — single column */
    .about-stats-grid { grid-template-columns: 1fr; }

    /* FAQ — larger body, tighter button */
    .faq-btn { padding: 18px 20px; font-size: .9rem; }
    .faq-item.open .faq-body { max-height: 480px; }
    .faq-body { padding: 0 20px; }
    .faq-item.open .faq-body { padding: 16px 20px; }

    /* Footer */
    .footer-wrap   { padding: 40px 16px 28px; }
    .footer-bottom { padding: 16px; }

    /* Map section */
    .map-section { padding: 56px 0; }
    .map-inner   { padding: 0 16px; }
    .map-header  { margin-bottom: 28px; }

    /* Section inner */
    .section-inner { padding: 0 16px; }

    /* Intro panel */
    .intro-logo { height: 72px; margin-bottom: 20px; }

    /* CTA section */
    .cta-inner { padding: 0 20px; }
    .cta-section h2 { letter-spacing: -1px; }

    /* Services section inner */
    .services-section .section-inner { padding: 0 16px; }

    /* Team cards on mobile */
    .team-card { width: 100%; max-width: 380px; }
}

/* Extra small phones */
@media (max-width: 480px) {
    .nav-container { padding: 0 10px; }
    .page-hero { padding: 44px 16px 44px; }
    .page-hero h1 { font-size: clamp(1.7rem, 8vw, 2.2rem); }
    .page-body  { padding: 28px 14px 48px; }
    .ht-heading { font-size: clamp(1.8rem, 7vw, 2.4rem); letter-spacing: -1px; }
    .stat-number { font-size: 1.8rem; }
    .svc-detail-body { padding: 20px 16px; }
    .step-card { padding: 24px 18px; }
    .contact-form-card { padding: 22px 18px; }
    .offer-grid { padding: 22px 16px; }
    .footer-wrap { padding: 32px 14px 24px; }
    .intro-logo { height: 60px; }
    .content h1 { font-size: clamp(2.8rem, 9vw, 4rem) !important; }
    .intro-desc { font-size: .95rem; max-width: 100%; }
    .cta-btns { flex-direction: column; align-items: center; }
    .btn-white-solid, .btn-outline-white { width: 100%; text-align: center; justify-content: center; }
}