/* web1 — Modern: dark glass header over a big gradient hero, soft blobs, large rounded cards. */
:root { --ink: #0f172a; --soft: #64748b; --line: #e2e8f0; --paper: #f8fafc; }
body { font-family: "Outfit", system-ui, sans-serif; color: var(--ink); background: var(--paper); }
h1, h2, h3 { letter-spacing: -.03em; font-weight: 700; }
h2 { font-size: clamp(28px, 3.4vw, 44px); }
header.site { position: sticky; top: 12px; z-index: 50; margin: 12px auto 0; width: min(1240px, 95vw); border-radius: 20px; background: rgba(15, 23, 42, .82); backdrop-filter: blur(14px); color: #fff; box-shadow: 0 20px 50px -20px rgba(15, 23, 42, .5); }
.preview-bar + header.site { top: 48px; }
.bar { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; padding: 12px 22px; }
.brand { display: flex; align-items: center; gap: 12px; color: #fff; text-decoration: none; font-weight: 700; font-size: 19px; }
.brand img { width: 40px; height: 40px; object-fit: contain; border-radius: 12px; background: #fff; padding: 3px; }
.brand small { display: block; font-size: 11px; font-weight: 400; opacity: .7; }
nav.menu { margin-left: auto; display: flex; flex-wrap: wrap; gap: 2px; }
nav.menu a { color: rgba(255, 255, 255, .82); text-decoration: none; padding: 9px 14px; border-radius: 12px; font-size: 14.5px; }
nav.menu a:hover, nav.menu a.on { color: #fff; background: rgba(255, 255, 255, .12); }
.dd > div { background: #0f172a; border-color: rgba(255, 255, 255, .1); }
.header-cta { padding: 10px 18px; border-radius: 12px; font-size: 14px; }
.burger { margin-left: auto; color: #fff; }
.hero { margin: -76px 0 0; padding: 190px 0 130px; color: #fff; background: radial-gradient(1200px 500px at 85% -10%, color-mix(in srgb, var(--p) 75%, white), transparent 60%), linear-gradient(160deg, #0f172a 10%, color-mix(in srgb, var(--p) 70%, #0f172a)); border-radius: 0 0 48px 48px; }
.hero::after { content: ""; position: absolute; right: -120px; bottom: -160px; width: 460px; height: 460px; border-radius: 50%; background: color-mix(in srgb, var(--p) 55%, transparent); filter: blur(60px); opacity: .55; animation: blob 10s ease-in-out infinite alternate; }
.hero.has-img::before { content: ""; position: absolute; inset: 0; background: linear-gradient(160deg, rgba(15, 23, 42, .9), rgba(15, 23, 42, .45)); }
.hero .wrap { z-index: 1; }
.hero h1 { font-size: clamp(40px, 6vw, 76px); max-width: 14ch; line-height: 1.02; }
.hero p { font-size: 19px; max-width: 50ch; opacity: .85; }
.hero .btn { margin-top: 14px; box-shadow: 0 16px 34px -10px color-mix(in srgb, var(--p) 70%, black); }
.btn { border-radius: 14px; }
.btn:hover { box-shadow: 0 14px 30px -10px color-mix(in srgb, var(--p) 70%, black); }
section.block { padding: 80px 0; }
.card { background: #fff; border-radius: 26px; padding: 26px; border: 1px solid transparent; box-shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 18px 40px -24px rgba(15, 23, 42, .3); transition: transform .3s, box-shadow .3s, border-color .3s; }
.card:hover { transform: translateY(-6px); border-color: color-mix(in srgb, var(--p) 30%, white); }
.card img, .gallery img, .entry-img { border-radius: 18px; }
.stats > div { background: #fff; border-radius: 22px; padding: 26px 12px; box-shadow: 0 18px 40px -26px rgba(15, 23, 42, .35); }
.cta { text-align: center; color: #fff; background: linear-gradient(120deg, var(--p), #0f172a) !important; border-radius: 40px; width: min(1180px, 92vw); margin: 40px auto; }
details { border-radius: 16px; border-color: transparent; box-shadow: 0 8px 24px -18px rgba(15, 23, 42, .4); }
form.enquiry input, form.enquiry select, form.enquiry textarea { border-radius: 14px; border-color: var(--line); }
.page-head { margin-top: -76px; padding: 150px 0 50px; background: linear-gradient(160deg, #0f172a, color-mix(in srgb, var(--p) 60%, #0f172a)); color: #fff; border-radius: 0 0 36px 36px; }
.page-head a, .page-head .muted { color: rgba(255, 255, 255, .8); }
footer.site { margin-top: 40px; background: #0f172a; color: #94a3b8; padding: 56px 0 26px; font-size: 14px; }
footer.site a, footer.site strong { color: #fff; }
.powered { border-top: 1px solid rgba(255, 255, 255, .08); }
@keyframes blob { to { transform: translate(-60px, -40px) scale(1.1); } }
@media (prefers-reduced-motion: reduce) { .hero::after { animation: none; } }
@media (max-width: 860px) { header.site { border-radius: 16px; } .hero { padding-top: 160px; } }
