/* =========================================================
TRUDENT DENTAL HOSPITAL — Design System
Hand-built. No framework, no template.
1. Tokens 6. Header & navigation
2. Base 7. Hero & ambient motion
3. Layout 8. Components
4. Typography 9. Motion / reveal
5. Buttons 10. Responsive
========================================================= */

/* ---------------------------------------------------------
1. TOKENS
--------------------------------------------------------- */
:root {
/* Brand — sampled from the Trudent logo */
--navy: #0a2540;
--navy-2: #0d3159;
--navy-deep: #071c31;
--teal: #0e7c7b;
--teal-dark: #095c5b;
--teal-deep: #07403f;
--aqua: #7acbd2; /* the tooth mark colour */
--aqua-soft: #e8f5f7;
--teal-light: #e4f3f2;
--gold: #b8912a;
--gold-light: #f7efd6;

/* Neutrals */
--ink: #12212f;
--muted: #566b7c;
--muted-2: #8b9bab;
--white: #ffffff;
--bg: #ffffff;
--bg-alt: #f4f8f9;
--bg-warm: #fbfaf8;
--line: #e5ebee;
--line-soft: #eef3f5;

/* Radii */
--radius-xs: 8px;
--radius-sm: 12px;
--radius: 18px;
--radius-lg: 28px;
--radius-xl: 34px;

/* Elevation — soft, cool-tinted, healthcare-grade */
--shadow-xs: 0 1px 2px rgba(10, 37, 64, 0.05), 0 4px 12px -6px rgba(10, 37, 64, 0.10);
--shadow-sm: 0 2px 6px -2px rgba(10, 37, 64, 0.08), 0 12px 24px -14px rgba(10, 37, 64, 0.16);
--shadow: 0 4px 10px -6px rgba(10, 37, 64, 0.10), 0 28px 52px -28px rgba(10, 37, 64, 0.26);
--shadow-lg: 0 8px 20px -10px rgba(10, 37, 64, 0.14), 0 48px 90px -40px rgba(10, 37, 64, 0.34);
--ring: 0 0 0 4px rgba(14, 124, 123, 0.16);

/* Rhythm */
--container: 1200px;
--gutter: 28px;
--space-section: 112px;
--header-h: 78px;

--ease: cubic-bezier(0.22, 1, 0.36, 1);
--ease-soft: cubic-bezier(0.4, 0, 0.2, 1);
}

/* ---------------------------------------------------------
2. BASE
--------------------------------------------------------- */
*,
*::before,
*::after { box-sizing: border-box; margin: 0; padding: 0; }

html {
scroll-behavior: smooth;
scroll-padding-top: calc(var(--header-h) + 24px);
-webkit-text-size-adjust: 100%;
}

body {
font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
color: var(--ink);
background: var(--bg);
font-size: 16px;
line-height: 1.68;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
overflow-x: hidden;
}
body.no-scroll { overflow: hidden; }

a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
ul { list-style: none; }
button { font-family: inherit; cursor: pointer; border: none; background: none; color: inherit; }
svg { flex-shrink: 0; }

:focus-visible {
outline: 2px solid var(--teal);
outline-offset: 3px;
border-radius: 4px;
}

::selection { background: var(--aqua); color: var(--navy); }

.skip-link {
position: absolute;
left: 50%;
top: -80px;
transform: translateX(-50%);
z-index: 1000;
background: var(--navy);
color: #fff;
padding: 12px 22px;
border-radius: 0 0 var(--radius-sm) var(--radius-sm);
font-size: 14px;
font-weight: 600;
transition: top 0.25s var(--ease);
}
.skip-link:focus { top: 0; }

.sr-only {
position: absolute;
width: 1px; height: 1px;
padding: 0; margin: -1px;
overflow: hidden;
clip: rect(0 0 0 0);
white-space: nowrap;
border: 0;
}

/* ---------------------------------------------------------
3. LAYOUT
--------------------------------------------------------- */
.container {
width: 100%;
max-width: var(--container);
margin: 0 auto;
padding: 0 var(--gutter);
}

.section { padding: var(--space-section) 0; position: relative; }
.section.tight { padding: 78px 0; }
.section.alt { background: var(--bg-alt); }
.section.warm { background: var(--bg-warm); }
.section.navy {
background: linear-gradient(165deg, var(--navy) 0%, var(--navy-deep) 100%);
color: rgba(255, 255, 255, 0.78);
position: relative;
overflow: hidden;
}
.section.navy h2,
.section.navy h3,
.section.navy h4 { color: #fff; }

.grid { display: grid; gap: 24px; }
.grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.grid-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }

/* ---------------------------------------------------------
4. TYPOGRAPHY
--------------------------------------------------------- */
h1, h2, h3, h4, h5 {
font-family: "Fraunces", Georgia, "Times New Roman", serif;
font-weight: 600;
line-height: 1.14;
color: var(--navy);
letter-spacing: -0.015em;
text-wrap: balance;
}

p { text-wrap: pretty; }

.eyebrow {
display: inline-flex;
align-items: center;
gap: 8px;
font-size: 11.5px;
font-weight: 700;
letter-spacing: 0.16em;
text-transform: uppercase;
color: var(--teal-dark);
background: var(--teal-light);
border: 1px solid rgba(14, 124, 123, 0.10);
padding: 7px 15px 7px 11px;
border-radius: 100px;
margin-bottom: 20px;
line-height: 1;
}
.eyebrow svg { width: 14px; height: 14px; }
.eyebrow.on-dark {
background: rgba(255, 255, 255, 0.08);
border-color: rgba(255, 255, 255, 0.14);
color: var(--aqua);
}

.section-head { max-width: 700px; margin-bottom: 58px; }
.section-head.center { margin-left: auto; margin-right: auto; text-align: center; }
.section-head h2 { font-size: clamp(29px, 3.5vw, 44px); margin-bottom: 16px; }
.section-head p { color: var(--muted); font-size: 17px; }
.section.navy .section-head p { color: rgba(255, 255, 255, 0.66); }

.lead { font-size: 17.5px; color: var(--muted); }

/* ---------------------------------------------------------
5. BUTTONS
--------------------------------------------------------- */
.btn {
position: relative;
display: inline-flex;
align-items: center;
justify-content: center;
gap: 9px;
padding: 15px 28px;
min-height: 50px;
border-radius: 100px;
font-weight: 600;
font-size: 15px;
letter-spacing: 0.005em;
line-height: 1.2;
text-align: center;
isolation: isolate;
overflow: hidden;
transition: transform 0.4s var(--ease), box-shadow 0.4s var(--ease),
background-color 0.3s var(--ease-soft), color 0.3s var(--ease-soft),
border-color 0.3s var(--ease-soft);
}
.btn svg { width: 17px; height: 17px; transition: transform 0.35s var(--ease); }
.btn:hover svg { transform: translateX(3px); }
.btn:active { transform: translateY(0) scale(0.985); }

/* soft sheen sweep */
.btn::after {
content: "";
position: absolute;
inset: 0;
z-index: -1;
background: linear-gradient(115deg, transparent 30%, rgba(255, 255, 255, 0.22) 50%, transparent 70%);
transform: translateX(-120%);
transition: transform 0.75s var(--ease);
}
.btn:hover::after { transform: translateX(120%); }

.btn-primary {
background: var(--teal);
color: #fff;
box-shadow: 0 10px 22px -12px rgba(14, 124, 123, 0.72);
}
.btn-primary:hover {
background: var(--teal-dark);
transform: translateY(-2px);
box-shadow: 0 18px 34px -14px rgba(14, 124, 123, 0.7);
}
.btn-navy {
background: var(--navy);
color: #fff;
box-shadow: 0 10px 22px -12px rgba(10, 37, 64, 0.7);
}
.btn-navy:hover { background: var(--navy-2); transform: translateY(-2px); }
.btn-gold {
background: var(--gold);
color: #fff;
box-shadow: 0 10px 22px -12px rgba(184, 145, 42, 0.7);
}
.btn-gold:hover { background: #c9a02f; transform: translateY(-2px); }
.btn-outline {
background: transparent;
border: 1.5px solid rgba(10, 37, 64, 0.16);
color: var(--navy);
}
.btn-outline:hover {
border-color: rgba(14, 124, 123, 0.45);
color: var(--teal-dark);
background: var(--teal-light);
transform: translateY(-2px);
}
.btn-outline.on-dark { border-color: rgba(255, 255, 255, 0.34); color: #fff; }
.btn-outline.on-dark:hover { background: rgba(255, 255, 255, 0.12); border-color: #fff; color: #fff; }
.btn-white { background: #fff; color: var(--navy); box-shadow: var(--shadow-sm); }
.btn-white:hover { transform: translateY(-2px); box-shadow: var(--shadow); }

.btn-block { width: 100%; }
.btn-sm { padding: 11px 20px; min-height: 42px; font-size: 13.5px; }
.btn-lg { padding: 17px 34px; min-height: 56px; font-size: 16px; }

/* ---------------------------------------------------------
6. HEADER & NAVIGATION
--------------------------------------------------------- */
.topbar {
background: var(--navy-deep);
color: rgba(255, 255, 255, 0.7);
font-size: 13px;
position: relative;
z-index: 60;
}
.topbar .container {
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
padding-top: 9px;
padding-bottom: 9px;
}
.topbar-links { display: flex; gap: 24px; align-items: center; min-width: 0; }
.topbar-links a,
.topbar-links span { display: inline-flex; align-items: center; gap: 7px; transition: color 0.25s; }
.topbar-links a:hover { color: var(--aqua); }
.topbar-links svg { width: 14px; height: 14px; opacity: 0.7; }
.topbar-social { display: flex; gap: 10px; }
.topbar-social a {
width: 28px; height: 28px;
display: flex; align-items: center; justify-content: center;
border-radius: 50%;
background: rgba(255, 255, 255, 0.07);
transition: background 0.25s, color 0.25s, transform 0.25s var(--ease);
}
.topbar-social a:hover { background: var(--aqua); color: var(--navy); transform: translateY(-2px); }
.topbar-social svg { width: 14px; height: 14px; }

/* --- Glass header --- */
.site-header {
position: sticky;
top: 0;
z-index: 90;
background: rgba(255, 255, 255, 0.78);
-webkit-backdrop-filter: blur(18px) saturate(180%);
backdrop-filter: blur(18px) saturate(180%);
border-bottom: 1px solid rgba(229, 235, 238, 0.9);
transition: box-shadow 0.35s var(--ease), background 0.35s var(--ease);
}
.site-header.scrolled {
background: rgba(255, 255, 255, 0.92);
box-shadow: 0 1px 0 rgba(10, 37, 64, 0.04), 0 12px 32px -22px rgba(10, 37, 64, 0.4);
}

.nav-inner {
display: flex;
align-items: center;
justify-content: space-between;
gap: 20px;
min-height: var(--header-h);
padding: 12px 0;
transition: min-height 0.35s var(--ease), padding 0.35s var(--ease);
}
.site-header.scrolled .nav-inner { min-height: 68px; padding: 8px 0; }

.brand { display: flex; align-items: center; flex-shrink: 0; }
.brand-logo {
height: 46px;
width: auto;
transition: transform 0.45s var(--ease), height 0.35s var(--ease);
}
.site-header.scrolled .brand-logo { height: 40px; }
.brand:hover .brand-logo { transform: scale(1.03); }

/* Crisp vector brand lockup — SVG + real text, resolution-independent
   (replaces a raster PNG wordmark so the logo stays sharp at every size/DPI) */
.brand-mark {
width: 44px; height: 44px;
border-radius: 12px;
background: linear-gradient(158deg, var(--teal) 0%, var(--teal-dark) 100%);
display: flex; align-items: center; justify-content: center;
flex-shrink: 0;
box-shadow: 0 6px 16px -6px rgba(14, 124, 123, 0.55);
transition: transform 0.4s var(--ease), width 0.35s var(--ease), height 0.35s var(--ease);
}
.brand-mark svg { width: 24px; height: 24px; display: block; }
.brand-mark img {
width: 100%; height: 100%;
object-fit: cover;
border-radius: inherit;
display: block;
}
.brand:hover .brand-mark { transform: scale(1.05); }
.site-header.scrolled .brand-mark { width: 38px; height: 38px; }
.site-header.scrolled .brand-mark svg { width: 21px; height: 21px; }
.brand-text {
display: flex;
flex-direction: column;
justify-content: center;
line-height: 1.18;
margin-left: 12px;
white-space: nowrap;
}
.brand-text .name {
font-family: "Fraunces", Georgia, serif;
font-weight: 700;
font-size: 16.5px;
color: var(--navy);
}
.brand-text .sub {
font-size: 10.5px;
font-weight: 600;
letter-spacing: 0.09em;
text-transform: uppercase;
color: var(--muted-2);
}

.mobile-nav-head .brand-mark { background: rgba(255, 255, 255, 0.14); box-shadow: none; }
.mobile-nav-head .brand-mark svg { fill: #fff; }
.mobile-nav-head .brand-text .name { color: #fff; }
.mobile-nav-head .brand-text .sub { color: rgba(255, 255, 255, 0.55); }

.footer-brand .brand { margin-bottom: 20px; }
.footer-brand .brand-mark { width: 50px; height: 50px; background: rgba(255, 255, 255, 0.1); box-shadow: none; }
.footer-brand .brand-mark svg { width: 27px; height: 27px; fill: var(--aqua); }
.footer-brand .brand-text .name { color: #fff; font-size: 17.5px; }
.footer-brand .brand-text .sub { color: rgba(255, 255, 255, 0.5); }

/* Desktop nav */
.main-nav { display: flex; align-items: center; gap: 2px; }
.main-nav a {
position: relative;
padding: 10px 15px;
font-size: 14.5px;
font-weight: 600;
color: var(--muted);
border-radius: 10px;
transition: color 0.25s var(--ease-soft), background 0.25s var(--ease-soft);
white-space: nowrap;
}
.main-nav a::after {
content: "";
position: absolute;
left: 15px;
right: 15px;
bottom: 3px;
height: 2px;
border-radius: 2px;
background: var(--teal);
transform: scaleX(0);
transform-origin: center;
transition: transform 0.4s var(--ease);
}
.main-nav a:hover { color: var(--navy); background: rgba(14, 124, 123, 0.05); }
.main-nav a:hover::after { transform: scaleX(0.55); }
.main-nav a[aria-current="page"],
.main-nav a.active { color: var(--teal-dark); }
.main-nav a[aria-current="page"]::after,
.main-nav a.active::after { transform: scaleX(1); }

.nav-cta { display: flex; align-items: center; gap: 12px; flex-shrink: 0; }
.nav-phone {
display: flex;
align-items: center;
gap: 9px;
font-weight: 700;
color: var(--navy);
font-size: 14.5px;
white-space: nowrap;
transition: color 0.25s;
}
.nav-phone:hover { color: var(--teal-dark); }
.nav-phone .ic {
width: 36px; height: 36px;
border-radius: 50%;
background: var(--teal-light);
color: var(--teal-dark);
display: flex; align-items: center; justify-content: center;
transition: background 0.3s, color 0.3s, transform 0.35s var(--ease);
}
.nav-phone:hover .ic { background: var(--teal); color: #fff; transform: scale(1.06); }
.nav-phone .ic svg { width: 16px; height: 16px; }
.nav-phone .txt { display: flex; flex-direction: column; line-height: 1.25; }
.nav-phone .txt small {
font-size: 10.5px;
font-weight: 600;
letter-spacing: 0.09em;
text-transform: uppercase;
color: var(--muted-2);
}

/* Hamburger */
.nav-toggle {
display: none;
width: 46px; height: 46px;
border-radius: 13px;
background: var(--bg-alt);
border: 1px solid var(--line);
align-items: center;
justify-content: center;
flex-direction: column;
gap: 5px;
flex-shrink: 0;
transition: background 0.25s, border-color 0.25s;
}
.nav-toggle:hover { background: var(--teal-light); border-color: rgba(14, 124, 123, 0.2); }
.nav-toggle span {
display: block;
width: 20px; height: 2px;
border-radius: 2px;
background: var(--navy);
transition: transform 0.4s var(--ease), opacity 0.25s var(--ease);
}
.nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* --- Mobile slide-in panel --- */
.nav-scrim {
position: fixed;
inset: 0;
z-index: 110;
background: rgba(7, 28, 49, 0.5);
-webkit-backdrop-filter: blur(3px);
backdrop-filter: blur(3px);
opacity: 0;
visibility: hidden;
transition: opacity 0.4s var(--ease), visibility 0.4s;
}
.nav-scrim.open { opacity: 1; visibility: visible; }

.mobile-nav {
position: fixed;
top: 0; right: 0; bottom: 0;
z-index: 120;
width: min(88vw, 380px);
background: linear-gradient(170deg, var(--navy) 0%, var(--navy-deep) 100%);
transform: translateX(102%);
transition: transform 0.46s var(--ease), visibility 0.46s var(--ease);
display: flex;
flex-direction: column;
padding: 20px 22px calc(24px + env(safe-area-inset-bottom));
overflow-y: auto;
overscroll-behavior: contain;
box-shadow: -30px 0 70px -30px rgba(0, 0, 0, 0.6);
visibility: hidden;
}
.mobile-nav.open { transform: translateX(0); visibility: visible; }

.mobile-nav-head {
display: flex;
justify-content: space-between;
align-items: center;
gap: 14px;
padding-bottom: 20px;
margin-bottom: 8px;
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.mobile-nav-head img { height: 40px; width: auto; }
.mobile-nav .close-btn {
width: 44px; height: 44px;
border-radius: 12px;
background: rgba(255, 255, 255, 0.09);
display: flex; align-items: center; justify-content: center;
color: #fff;
flex-shrink: 0;
transition: background 0.25s, transform 0.3s var(--ease);
}
.mobile-nav .close-btn:hover { background: rgba(255, 255, 255, 0.18); transform: rotate(90deg); }
.mobile-nav .close-btn svg { width: 20px; height: 20px; }

.mobile-nav-links { display: flex; flex-direction: column; padding: 6px 0 4px; }
.mobile-nav-links a {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
color: rgba(255, 255, 255, 0.9);
font-family: "Fraunces", Georgia, serif;
font-size: 21px;
font-weight: 500;
min-height: 58px;
padding: 6px 12px;
border-radius: 12px;
border-bottom: 1px solid rgba(255, 255, 255, 0.07);
transition: background 0.25s, color 0.25s, padding-left 0.3s var(--ease);
opacity: 0;
transform: translateX(14px);
}
.mobile-nav-links a svg { width: 16px; height: 16px; opacity: 0.35; }
.mobile-nav-links a:hover,
.mobile-nav-links a:active { background: rgba(255, 255, 255, 0.07); padding-left: 18px; }
.mobile-nav-links a[aria-current="page"] {
color: var(--aqua);
background: rgba(122, 203, 210, 0.1);
box-shadow: inset 3px 0 0 var(--aqua);
padding-left: 18px;
}
.mobile-nav-links a[aria-current="page"] svg { opacity: 0.9; }

.mobile-nav.open .mobile-nav-links a { animation: navItemIn 0.5s var(--ease) forwards; }
.mobile-nav.open .mobile-nav-links a:nth-child(1) { animation-delay: 0.08s; }
.mobile-nav.open .mobile-nav-links a:nth-child(2) { animation-delay: 0.13s; }
.mobile-nav.open .mobile-nav-links a:nth-child(3) { animation-delay: 0.18s; }
.mobile-nav.open .mobile-nav-links a:nth-child(4) { animation-delay: 0.23s; }
.mobile-nav.open .mobile-nav-links a:nth-child(5) { animation-delay: 0.28s; }
.mobile-nav.open .mobile-nav-links a:nth-child(6) { animation-delay: 0.33s; }
@keyframes navItemIn {
to { opacity: 1; transform: translateX(0); }
}

.mobile-nav-actions {
display: flex;
flex-direction: column;
gap: 10px;
margin-top: 22px;
}
.mobile-nav-meta {
margin-top: 22px;
padding-top: 18px;
border-top: 1px solid rgba(255, 255, 255, 0.1);
display: flex;
flex-direction: column;
gap: 12px;
font-size: 13.5px;
color: rgba(255, 255, 255, 0.62);
}
.mobile-nav-meta a,
.mobile-nav-meta span { display: flex; gap: 10px; align-items: flex-start; line-height: 1.5; }
.mobile-nav-meta svg { width: 15px; height: 15px; margin-top: 3px; opacity: 0.6; }
.mobile-nav-meta a:hover { color: var(--aqua); }
.mobile-nav-social { display: flex; gap: 10px; margin-top: 4px; }
.mobile-nav-social a {
width: 38px; height: 38px;
border-radius: 11px;
background: rgba(255, 255, 255, 0.08);
display: flex; align-items: center; justify-content: center;
color: #fff;
}
.mobile-nav-social a:hover { background: var(--aqua); color: var(--navy); }
.mobile-nav-social svg { width: 16px; height: 16px; margin: 0; opacity: 1; }

/* ---------------------------------------------------------
7. HERO & AMBIENT MOTION
--------------------------------------------------------- */
.ambient {
position: absolute;
inset: 0;
overflow: hidden;
pointer-events: none;
z-index: 0;
}
.ambient-blob {
position: absolute;
border-radius: 50%;
filter: blur(60px);
opacity: 0.5;
will-change: transform;
}
.ambient-blob.b1 {
width: 46vw; height: 46vw;
max-width: 620px; max-height: 620px;
top: -18%; right: -8%;
background: radial-gradient(circle at 35% 35%, rgba(122, 203, 210, 0.55), rgba(122, 203, 210, 0) 70%);
animation: drift1 26s ease-in-out infinite;
}
.ambient-blob.b2 {
width: 38vw; height: 38vw;
max-width: 520px; max-height: 520px;
bottom: -22%; left: -10%;
background: radial-gradient(circle at 50% 50%, rgba(14, 124, 123, 0.28), rgba(14, 124, 123, 0) 70%);
animation: drift2 32s ease-in-out infinite;
}
.ambient-blob.b3 {
width: 30vw; height: 30vw;
max-width: 420px; max-height: 420px;
top: 32%; left: 38%;
background: radial-gradient(circle at 50% 50%, rgba(10, 37, 64, 0.14), rgba(10, 37, 64, 0) 70%);
animation: drift3 38s ease-in-out infinite;
}
.ambient.on-dark .ambient-blob.b1 { background: radial-gradient(circle at 35% 35%, rgba(122, 203, 210, 0.30), transparent 70%); }
.ambient.on-dark .ambient-blob.b2 { background: radial-gradient(circle at 50% 50%, rgba(14, 124, 123, 0.45), transparent 70%); }
.ambient.on-dark .ambient-blob.b3 { background: radial-gradient(circle at 50% 50%, rgba(122, 203, 210, 0.14), transparent 70%); }

@keyframes drift1 {
0%, 100% { transform: translate3d(0, 0, 0) scale(1); }
50% { transform: translate3d(-5%, 6%, 0) scale(1.10); }
}
@keyframes drift2 {
0%, 100% { transform: translate3d(0, 0, 0) scale(1.05); }
50% { transform: translate3d(7%, -5%, 0) scale(0.95); }
}
@keyframes drift3 {
0%, 100% { transform: translate3d(0, 0, 0) scale(0.95); }
50% { transform: translate3d(-6%, -7%, 0) scale(1.08); }
}

/* Faint clinical grid texture */
.ambient-grid {
position: absolute;
inset: 0;
background-image:
linear-gradient(rgba(10, 37, 64, 0.045) 1px, transparent 1px),
linear-gradient(90deg, rgba(10, 37, 64, 0.045) 1px, transparent 1px);
background-size: 62px 62px;
-webkit-mask-image: radial-gradient(ellipse 75% 65% at 50% 40%, #000 20%, transparent 78%);
mask-image: radial-gradient(ellipse 75% 65% at 50% 40%, #000 20%, transparent 78%);
}
.ambient.on-dark .ambient-grid {
background-image:
linear-gradient(rgba(255, 255, 255, 0.05) 1px, transparent 1px),
linear-gradient(90deg, rgba(255, 255, 255, 0.05) 1px, transparent 1px);
}

/* Floating micro-particles */
.ambient-particles { position: absolute; inset: 0; }
.ambient-particles i {
position: absolute;
bottom: -10%;
width: 6px; height: 6px;
border-radius: 50%;
background: rgba(14, 124, 123, 0.35);
box-shadow: 0 0 10px rgba(122, 203, 210, 0.6);
opacity: 0;
will-change: transform, opacity;
animation: rise 22s linear infinite;
}
.ambient.on-dark .ambient-particles i { background: rgba(122, 203, 210, 0.6); }
.ambient-particles i:nth-child(odd) { animation-name: rise; }
.ambient-particles i:nth-child(even) { animation-name: riseAlt; }
.ambient-particles i:nth-child(1) { left: 61.8%; animation-delay: 2.37s; animation-duration: 22.1s; width: 4px; height: 4px; }
.ambient-particles i:nth-child(2) { left: 23.6%; animation-delay: 4.74s; animation-duration: 25.2s; width: 5px; height: 5px; }
.ambient-particles i:nth-child(3) { left: 85.4%; animation-delay: 7.11s; animation-duration: 28.3s; }
.ambient-particles i:nth-child(4) { left: 47.2%; animation-delay: 9.48s; animation-duration: 31.4s; width: 7px; height: 7px; }
.ambient-particles i:nth-child(5) { left: 9.0%; animation-delay: 11.85s; animation-duration: 34.5s; width: 8px; height: 8px; }
.ambient-particles i:nth-child(6) { left: 70.8%; animation-delay: 14.22s; animation-duration: 19.6s; width: 3px; height: 3px; }
.ambient-particles i:nth-child(7) { left: 32.6%; animation-delay: 16.59s; animation-duration: 22.7s; width: 4px; height: 4px; }
.ambient-particles i:nth-child(8) { left: 94.4%; animation-delay: 18.96s; animation-duration: 25.8s; width: 5px; height: 5px; }
.ambient-particles i:nth-child(9) { left: 56.2%; animation-delay: 21.33s; animation-duration: 28.9s; }
.ambient-particles i:nth-child(10) { left: 18.0%; animation-delay: 23.7s; animation-duration: 32.0s; width: 7px; height: 7px; }
.ambient-particles i:nth-child(11) { left: 79.8%; animation-delay: 0.07s; animation-duration: 35.1s; width: 8px; height: 8px; }
.ambient-particles i:nth-child(12) { left: 41.6%; animation-delay: 2.44s; animation-duration: 20.2s; width: 3px; height: 3px; }
.ambient-particles i:nth-child(13) { left: 3.4%; animation-delay: 4.81s; animation-duration: 23.3s; width: 4px; height: 4px; }
.ambient-particles i:nth-child(14) { left: 65.2%; animation-delay: 7.18s; animation-duration: 26.4s; width: 5px; height: 5px; }
.ambient-particles i:nth-child(15) { left: 27.0%; animation-delay: 9.55s; animation-duration: 29.5s; }
.ambient-particles i:nth-child(16) { left: 88.8%; animation-delay: 11.92s; animation-duration: 32.6s; width: 7px; height: 7px; }
.ambient-particles i:nth-child(17) { left: 50.6%; animation-delay: 14.29s; animation-duration: 35.7s; width: 8px; height: 8px; }
.ambient-particles i:nth-child(18) { left: 12.4%; animation-delay: 16.66s; animation-duration: 20.8s; width: 3px; height: 3px; }
.ambient-particles i:nth-child(19) { left: 74.2%; animation-delay: 19.03s; animation-duration: 23.9s; width: 4px; height: 4px; }
.ambient-particles i:nth-child(20) { left: 36.0%; animation-delay: 21.4s; animation-duration: 27.0s; width: 5px; height: 5px; }
.ambient-particles i:nth-child(21) { left: 97.8%; animation-delay: 23.77s; animation-duration: 30.1s; }
.ambient-particles i:nth-child(22) { left: 59.6%; animation-delay: 0.14s; animation-duration: 33.2s; width: 7px; height: 7px; }
.ambient-particles i:nth-child(23) { left: 21.4%; animation-delay: 2.51s; animation-duration: 36.3s; width: 8px; height: 8px; }
.ambient-particles i:nth-child(24) { left: 83.2%; animation-delay: 4.88s; animation-duration: 21.4s; width: 3px; height: 3px; }
.ambient-particles i:nth-child(25) { left: 45.0%; animation-delay: 7.25s; animation-duration: 24.5s; width: 4px; height: 4px; }
.ambient-particles i:nth-child(26) { left: 6.8%; animation-delay: 9.62s; animation-duration: 27.6s; width: 5px; height: 5px; }
.ambient-particles i:nth-child(27) { left: 68.6%; animation-delay: 11.99s; animation-duration: 30.7s; }
.ambient-particles i:nth-child(28) { left: 30.4%; animation-delay: 14.36s; animation-duration: 33.8s; width: 7px; height: 7px; }
.ambient-particles i:nth-child(29) { left: 92.2%; animation-delay: 16.73s; animation-duration: 36.9s; width: 8px; height: 8px; }
.ambient-particles i:nth-child(30) { left: 54.0%; animation-delay: 19.1s; animation-duration: 22.0s; width: 3px; height: 3px; }
.ambient-particles i:nth-child(31) { left: 15.8%; animation-delay: 21.47s; animation-duration: 25.1s; width: 4px; height: 4px; }
.ambient-particles i:nth-child(32) { left: 77.6%; animation-delay: 23.84s; animation-duration: 28.2s; width: 5px; height: 5px; }
.ambient-particles i:nth-child(33) { left: 39.4%; animation-delay: 0.21s; animation-duration: 31.3s; }
.ambient-particles i:nth-child(34) { left: 1.2%; animation-delay: 2.58s; animation-duration: 34.4s; width: 7px; height: 7px; }
.ambient-particles i:nth-child(35) { left: 63.0%; animation-delay: 4.95s; animation-duration: 19.5s; width: 8px; height: 8px; }
.ambient-particles i:nth-child(36) { left: 24.8%; animation-delay: 7.32s; animation-duration: 22.6s; width: 3px; height: 3px; }
.ambient-particles i:nth-child(37) { left: 86.6%; animation-delay: 9.69s; animation-duration: 25.7s; width: 4px; height: 4px; }
.ambient-particles i:nth-child(38) { left: 48.4%; animation-delay: 12.06s; animation-duration: 28.8s; width: 5px; height: 5px; }
.ambient-particles i:nth-child(39) { left: 10.2%; animation-delay: 14.43s; animation-duration: 31.9s; }
.ambient-particles i:nth-child(40) { left: 72.0%; animation-delay: 16.8s; animation-duration: 35.0s; width: 7px; height: 7px; }
.ambient-particles i:nth-child(41) { left: 33.8%; animation-delay: 19.17s; animation-duration: 20.1s; width: 8px; height: 8px; }
.ambient-particles i:nth-child(42) { left: 95.6%; animation-delay: 21.54s; animation-duration: 23.2s; width: 3px; height: 3px; }
.ambient-particles i:nth-child(43) { left: 57.4%; animation-delay: 23.91s; animation-duration: 26.3s; width: 4px; height: 4px; }
.ambient-particles i:nth-child(44) { left: 19.2%; animation-delay: 0.28s; animation-duration: 29.4s; width: 5px; height: 5px; }
.ambient-particles i:nth-child(45) { left: 81.0%; animation-delay: 2.65s; animation-duration: 32.5s; }
.ambient-particles i:nth-child(46) { left: 42.8%; animation-delay: 5.02s; animation-duration: 35.6s; width: 7px; height: 7px; }
.ambient-particles i:nth-child(47) { left: 4.6%; animation-delay: 7.39s; animation-duration: 20.7s; width: 8px; height: 8px; }
.ambient-particles i:nth-child(48) { left: 66.4%; animation-delay: 9.76s; animation-duration: 23.8s; width: 3px; height: 3px; }
.ambient-particles i:nth-child(49) { left: 28.2%; animation-delay: 12.13s; animation-duration: 26.9s; width: 4px; height: 4px; }
.ambient-particles i:nth-child(50) { left: 90.0%; animation-delay: 14.5s; animation-duration: 30.0s; width: 5px; height: 5px; }
.ambient-particles i:nth-child(51) { left: 51.8%; animation-delay: 16.87s; animation-duration: 33.1s; }
.ambient-particles i:nth-child(52) { left: 13.6%; animation-delay: 19.24s; animation-duration: 36.2s; width: 7px; height: 7px; }
.ambient-particles i:nth-child(53) { left: 75.4%; animation-delay: 21.61s; animation-duration: 21.3s; width: 8px; height: 8px; }
.ambient-particles i:nth-child(54) { left: 37.2%; animation-delay: 23.98s; animation-duration: 24.4s; width: 3px; height: 3px; }
.ambient-particles i:nth-child(55) { left: 98.0%; animation-delay: 0.35s; animation-duration: 27.5s; width: 4px; height: 4px; }
.ambient-particles i:nth-child(56) { left: 60.8%; animation-delay: 2.72s; animation-duration: 30.6s; width: 5px; height: 5px; }
.ambient-particles i:nth-child(57) { left: 22.6%; animation-delay: 5.09s; animation-duration: 33.7s; }
.ambient-particles i:nth-child(58) { left: 84.4%; animation-delay: 7.46s; animation-duration: 36.8s; width: 7px; height: 7px; }
.ambient-particles i:nth-child(59) { left: 46.2%; animation-delay: 9.83s; animation-duration: 21.9s; width: 8px; height: 8px; }
.ambient-particles i:nth-child(60) { left: 8.0%; animation-delay: 12.2s; animation-duration: 25.0s; width: 3px; height: 3px; }
.ambient-particles i:nth-child(61) { left: 69.8%; animation-delay: 14.57s; animation-duration: 28.1s; width: 4px; height: 4px; }
.ambient-particles i:nth-child(62) { left: 31.6%; animation-delay: 16.94s; animation-duration: 31.2s; width: 5px; height: 5px; }
.ambient-particles i:nth-child(63) { left: 93.4%; animation-delay: 19.31s; animation-duration: 34.3s; }
.ambient-particles i:nth-child(64) { left: 55.2%; animation-delay: 21.68s; animation-duration: 19.4s; width: 7px; height: 7px; }
.ambient-particles i:nth-child(65) { left: 17.0%; animation-delay: 24.05s; animation-duration: 22.5s; width: 8px; height: 8px; }
.ambient-particles i:nth-child(66) { left: 78.8%; animation-delay: 0.42s; animation-duration: 25.6s; width: 3px; height: 3px; }
.ambient-particles i:nth-child(67) { left: 40.6%; animation-delay: 2.79s; animation-duration: 28.7s; width: 4px; height: 4px; }
.ambient-particles i:nth-child(68) { left: 2.4%; animation-delay: 5.16s; animation-duration: 31.8s; width: 5px; height: 5px; }
.ambient-particles i:nth-child(69) { left: 64.2%; animation-delay: 7.53s; animation-duration: 34.9s; }
.ambient-particles i:nth-child(70) { left: 26.0%; animation-delay: 9.9s; animation-duration: 20.0s; width: 7px; height: 7px; }
.ambient-particles i:nth-child(71) { left: 87.8%; animation-delay: 12.27s; animation-duration: 23.1s; width: 8px; height: 8px; }
.ambient-particles i:nth-child(72) { left: 49.6%; animation-delay: 14.64s; animation-duration: 26.2s; width: 3px; height: 3px; }
.ambient-particles i:nth-child(73) { left: 11.4%; animation-delay: 17.01s; animation-duration: 29.3s; width: 4px; height: 4px; }
.ambient-particles i:nth-child(74) { left: 73.2%; animation-delay: 19.38s; animation-duration: 32.4s; width: 5px; height: 5px; }
.ambient-particles i:nth-child(75) { left: 35.0%; animation-delay: 21.75s; animation-duration: 35.5s; }
.ambient-particles i:nth-child(76) { left: 96.8%; animation-delay: 24.12s; animation-duration: 20.6s; width: 7px; height: 7px; }
.ambient-particles i:nth-child(77) { left: 58.6%; animation-delay: 0.49s; animation-duration: 23.7s; width: 8px; height: 8px; }
.ambient-particles i:nth-child(78) { left: 20.4%; animation-delay: 2.86s; animation-duration: 26.8s; width: 3px; height: 3px; }
.ambient-particles i:nth-child(79) { left: 82.2%; animation-delay: 5.23s; animation-duration: 29.9s; width: 4px; height: 4px; }
.ambient-particles i:nth-child(80) { left: 44.0%; animation-delay: 7.6s; animation-duration: 33.0s; width: 5px; height: 5px; }
.ambient-particles i:nth-child(81) { left: 5.8%; animation-delay: 9.97s; animation-duration: 36.1s; }
.ambient-particles i:nth-child(82) { left: 67.6%; animation-delay: 12.34s; animation-duration: 21.2s; width: 7px; height: 7px; }
.ambient-particles i:nth-child(83) { left: 29.4%; animation-delay: 14.71s; animation-duration: 24.3s; width: 8px; height: 8px; }
.ambient-particles i:nth-child(84) { left: 91.2%; animation-delay: 17.08s; animation-duration: 27.4s; width: 3px; height: 3px; }
.ambient-particles i:nth-child(85) { left: 53.0%; animation-delay: 19.45s; animation-duration: 30.5s; width: 4px; height: 4px; }
.ambient-particles i:nth-child(86) { left: 14.8%; animation-delay: 21.82s; animation-duration: 33.6s; width: 5px; height: 5px; }
.ambient-particles i:nth-child(87) { left: 76.6%; animation-delay: 24.19s; animation-duration: 36.7s; }
.ambient-particles i:nth-child(88) { left: 38.4%; animation-delay: 0.56s; animation-duration: 21.8s; width: 7px; height: 7px; }
.ambient-particles i:nth-child(89) { left: 1.5%; animation-delay: 2.93s; animation-duration: 24.9s; width: 8px; height: 8px; }
.ambient-particles i:nth-child(90) { left: 62.0%; animation-delay: 5.3s; animation-duration: 28.0s; width: 3px; height: 3px; }
.ambient-particles i:nth-child(91) { left: 23.8%; animation-delay: 7.67s; animation-duration: 31.1s; width: 4px; height: 4px; }
.ambient-particles i:nth-child(92) { left: 85.6%; animation-delay: 10.04s; animation-duration: 34.2s; width: 5px; height: 5px; }
.ambient-particles i:nth-child(93) { left: 47.4%; animation-delay: 12.41s; animation-duration: 19.3s; }
.ambient-particles i:nth-child(94) { left: 9.2%; animation-delay: 14.78s; animation-duration: 22.4s; width: 7px; height: 7px; }
.ambient-particles i:nth-child(95) { left: 71.0%; animation-delay: 17.15s; animation-duration: 25.5s; width: 8px; height: 8px; }
.ambient-particles i:nth-child(96) { left: 32.8%; animation-delay: 19.52s; animation-duration: 28.6s; width: 3px; height: 3px; }
.ambient-particles i:nth-child(97) { left: 94.6%; animation-delay: 21.89s; animation-duration: 31.7s; width: 4px; height: 4px; }
.ambient-particles i:nth-child(98) { left: 56.4%; animation-delay: 24.26s; animation-duration: 34.8s; width: 5px; height: 5px; }
.ambient-particles i:nth-child(99) { left: 18.2%; animation-delay: 0.63s; animation-duration: 19.9s; }
.ambient-particles i:nth-child(100) { left: 80.0%; animation-delay: 3.0s; animation-duration: 23.0s; width: 7px; height: 7px; }

@keyframes rise {
0% { transform: translate3d(0, 0, 0); opacity: 0; }
12% { opacity: 0.85; }
50% { transform: translate3d(16px, -54vh, 0); }
80% { opacity: 0.5; }
100% { transform: translate3d(28px, -108vh, 0); opacity: 0; }
}
@keyframes riseAlt {
0% { transform: translate3d(0, 0, 0); opacity: 0; }
12% { opacity: 0.85; }
50% { transform: translate3d(-14px, -54vh, 0); }
80% { opacity: 0.5; }
100% { transform: translate3d(-26px, -108vh, 0); opacity: 0; }
}

/* --- Home hero --- */
.hero {
position: relative;
padding: 96px 0 108px;
overflow: hidden;
background:
radial-gradient(1100px 620px at 88% -12%, #eaf6f6 0%, rgba(255, 255, 255, 0) 60%),
linear-gradient(180deg, #ffffff 0%, var(--bg-alt) 100%);
}
.hero .container {
position: relative;
z-index: 2;
display: grid;
grid-template-columns: 1.02fr 0.98fr;
gap: 64px;
align-items: center;
}
.hero-copy h1 { font-size: clamp(33px, 4.5vw, 57px); margin-bottom: 22px; }
.hero-copy h1 em {
font-style: normal;
color: var(--teal);
position: relative;
white-space: nowrap;
}
.hero-copy h1 em::after {
content: "";
position: absolute;
left: 0; right: 0; bottom: 0.06em;
height: 0.30em;
background: linear-gradient(90deg, rgba(122, 203, 210, 0.38), rgba(122, 203, 210, 0.12));
border-radius: 4px;
z-index: -1;
}
.hero-copy p.lead { font-size: 17.5px; color: var(--muted); max-width: 500px; margin-bottom: 34px; }
.hero-actions { display: flex; gap: 14px; flex-wrap: wrap; margin-bottom: 42px; }

.hero-stats {
display: grid;
grid-template-columns: repeat(4, auto);
gap: 14px 34px;
padding-top: 30px;
border-top: 1px solid var(--line);
justify-content: start;
}
.hero-stats div strong {
display: block;
font-family: "Fraunces", Georgia, serif;
font-size: 27px;
color: var(--navy);
line-height: 1.1;
}
.hero-stats div span {
font-size: 11.5px;
color: var(--muted);
text-transform: uppercase;
letter-spacing: 0.08em;
font-weight: 600;
}

/* Hero visual — clinical card carrying the brand mark */
.hero-visual { position: relative; }
.hero-frame {
position: relative;
border-radius: var(--radius-xl);
background: linear-gradient(158deg, var(--navy) 0%, var(--teal-deep) 100%);
aspect-ratio: 1 / 1.02;
max-width: 460px;
margin: 0 auto;
overflow: hidden;
box-shadow: var(--shadow-lg);
display: flex;
align-items: center;
justify-content: center;
}
.hero-frame::before {
content: "";
position: absolute;
inset: 0;
background: radial-gradient(circle at 28% 18%, rgba(255, 255, 255, 0.18), transparent 55%);
}
.hero-frame::after {
content: "";
position: absolute;
width: 78%;
aspect-ratio: 1;
border-radius: 50%;
border: 1px solid rgba(255, 255, 255, 0.14);
box-shadow: 0 0 0 34px rgba(255, 255, 255, 0.035);
animation: breathe 9s ease-in-out infinite;
}
@keyframes breathe {
0%, 100% { transform: scale(1); opacity: 0.85; }
50% { transform: scale(1.06); opacity: 1; }
}
.hero-mark {
position: relative;
width: 34%;
max-width: 145px;
z-index: 1;
filter: drop-shadow(0 24px 34px rgba(0, 0, 0, 0.35));
animation: floatSoft 7s ease-in-out infinite;
}
.hero-mark img {
width: 100%;
height: auto;
display: block;
border-radius: 22%;
}
@keyframes floatSoft {
0%, 100% { transform: translateY(0); }
50% { transform: translateY(-10px); }
}

.badge-card {
position: absolute;
background: rgba(255, 255, 255, 0.96);
-webkit-backdrop-filter: blur(8px);
backdrop-filter: blur(8px);
border: 1px solid rgba(255, 255, 255, 0.9);
border-radius: var(--radius);
box-shadow: var(--shadow);
padding: 14px 17px;
display: flex;
align-items: center;
gap: 12px;
font-size: 13.5px;
font-weight: 700;
color: var(--navy);
z-index: 2;
animation: float 6s ease-in-out infinite;
transition: transform 0.4s var(--ease), box-shadow 0.4s var(--ease);
}
.badge-card:hover { transform: translateY(-4px) scale(1.02); }
.badge-card .ic {
width: 38px; height: 38px;
border-radius: 11px;
display: flex; align-items: center; justify-content: center;
flex-shrink: 0;
}
.badge-card .ic svg { width: 19px; height: 19px; }
.badge-card small { display: block; font-weight: 500; color: var(--muted); font-size: 11.5px; margin-top: 2px; }
.badge-1 { top: 6%; left: -2%; animation-delay: 0s; }
.badge-1 .ic { background: var(--teal-light); color: var(--teal-dark); }
.badge-2 { bottom: 10%; right: -3%; animation-delay: 1.6s; }
.badge-2 .ic { background: var(--gold-light); color: var(--gold); }
.badge-3 { top: 47%; left: -7%; animation-delay: 2.8s; }
.badge-3 .ic { background: #fdeaea; color: #c0455a; }

@keyframes float {
0%, 100% { transform: translateY(0); }
50% { transform: translateY(-11px); }
}

/* --- Inner page hero --- */
.page-hero {
position: relative;
background: linear-gradient(158deg, var(--navy) 0%, var(--teal-deep) 135%);
padding: 84px 0 72px;
overflow: hidden;
}
.page-hero .container { position: relative; z-index: 2; }
.breadcrumb {
display: flex;
gap: 8px;
align-items: center;
flex-wrap: wrap;
font-size: 13px;
color: rgba(255, 255, 255, 0.55);
margin-bottom: 18px;
}
.breadcrumb a { transition: color 0.25s; }
.breadcrumb a:hover { color: var(--aqua); }
.breadcrumb svg { width: 13px; height: 13px; opacity: 0.6; }
.page-hero h1 { color: #fff; font-size: clamp(30px, 4vw, 48px); max-width: 700px; }
.page-hero p { color: rgba(255, 255, 255, 0.72); font-size: 16.5px; max-width: 600px; margin-top: 16px; }

/* ---------------------------------------------------------
8. COMPONENTS
--------------------------------------------------------- */

/* Trust strip */
.trust-strip { background: var(--navy); position: relative; overflow: hidden; }
.trust-strip .container {
display: grid;
grid-template-columns: repeat(4, 1fr);
padding-top: 36px;
padding-bottom: 36px;
position: relative;
z-index: 1;
}
.trust-strip .item {
text-align: center;
border-left: 1px solid rgba(255, 255, 255, 0.12);
padding: 4px 14px;
}
.trust-strip .item:first-child { border-left: none; }
.trust-strip strong {
display: block;
font-family: "Fraunces", Georgia, serif;
font-size: 32px;
color: #fff;
line-height: 1.1;
}
.trust-strip span {
font-size: 11.5px;
color: rgba(255, 255, 255, 0.6);
text-transform: uppercase;
letter-spacing: 0.08em;
font-weight: 600;
}

/* Cards */
.card {
position: relative;
background: #fff;
border: 1px solid var(--line);
border-radius: var(--radius);
padding: 30px 28px;
transition: transform 0.45s var(--ease), box-shadow 0.45s var(--ease), border-color 0.45s var(--ease);
}
.card:hover {
transform: translateY(-5px);
box-shadow: var(--shadow);
border-color: rgba(14, 124, 123, 0.18);
}

.icon-tile,
.card > .ic {
width: 52px; height: 52px;
border-radius: 15px;
background: var(--teal-light);
color: var(--teal-dark);
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 20px;
transition: transform 0.45s var(--ease), background 0.4s var(--ease), color 0.4s var(--ease);
}
.icon-tile svg,
.card > .ic svg { width: 25px; height: 25px; }
.icon-tile.gold,
.card > .ic.gold { background: var(--gold-light); color: var(--gold); }
.icon-tile.center,
.card > .ic.center { margin-left: auto; margin-right: auto; }
.card > .ic.on-dark { background: rgba(255, 255, 255, 0.12); color: #fff; }
.card:hover > .ic.on-dark { background: rgba(255, 255, 255, 0.22); color: #fff; }
.card:hover .icon-tile,
.card:hover > .ic {
transform: translateY(-2px) scale(1.06);
background: var(--teal);
color: #fff;
}
.card:hover .icon-tile.gold,
.card:hover > .ic.gold { background: var(--gold); color: #fff; }

/* Service cards */
.service-card { display: flex; flex-direction: column; }
.service-card h3 { font-size: 19px; margin-bottom: 10px; padding-right: 26px; }
.service-card p { color: var(--muted); font-size: 14.5px; margin-bottom: 18px; flex: 1; }
.service-card .more {
font-size: 13.5px;
font-weight: 700;
color: var(--teal-dark);
display: inline-flex;
align-items: center;
gap: 7px;
align-self: flex-start;
}
.service-card .more svg { width: 14px; height: 14px; transition: transform 0.35s var(--ease); }
.service-card:hover .more svg { transform: translateX(5px); }
.service-card .num {
position: absolute;
top: 26px; right: 26px;
font-family: "Fraunces", Georgia, serif;
font-size: 13px;
color: var(--muted-2);
letter-spacing: 0.04em;
transition: color 0.35s;
}
.service-card:hover .num { color: var(--aqua); }

/* Service detail rows */
.service-detail {
display: grid;
grid-template-columns: 84px 1fr;
gap: 28px;
padding: 34px 0;
border-bottom: 1px solid var(--line);
scroll-margin-top: 120px;
}
.service-detail:last-child { border-bottom: none; }
.service-detail .ic-lg {
width: 72px; height: 72px;
border-radius: 20px;
background: var(--teal-light);
color: var(--teal-dark);
display: flex; align-items: center; justify-content: center;
transition: transform 0.45s var(--ease), background 0.4s, color 0.4s;
}
.service-detail:hover .ic-lg { background: var(--teal); color: #fff; transform: scale(1.05); }
.service-detail .ic-lg svg { width: 33px; height: 33px; }
.service-detail h3 {
font-size: 22px;
margin-bottom: 10px;
display: flex;
align-items: center;
gap: 12px;
flex-wrap: wrap;
}
.service-detail h3 .tag {
font-family: "Inter", sans-serif;
font-size: 11px;
font-weight: 700;
letter-spacing: 0.09em;
text-transform: uppercase;
color: var(--gold);
background: var(--gold-light);
padding: 5px 11px;
border-radius: 100px;
line-height: 1;
}
.service-detail p { color: var(--muted); margin-bottom: 16px; max-width: 660px; font-size: 15.5px; }
.service-detail ul { display: flex; flex-wrap: wrap; gap: 9px; }
.service-detail ul li {
font-size: 13.5px;
color: var(--navy);
background: var(--bg-alt);
border: 1px solid var(--line);
padding: 7px 14px;
border-radius: 100px;
display: flex;
align-items: center;
gap: 7px;
transition: background 0.3s, border-color 0.3s, transform 0.3s var(--ease);
}
.service-detail ul li:hover { background: var(--teal-light); border-color: rgba(14, 124, 123, 0.22); transform: translateY(-2px); }
.service-detail ul li svg { width: 13px; height: 13px; color: var(--teal); }

/* Feature rows */
.feature-row {
display: flex;
gap: 18px;
padding: 20px 0;
border-bottom: 1px solid var(--line);
}
.feature-row:last-child { border-bottom: none; }
.feature-row .ic {
width: 46px; height: 46px;
border-radius: 13px;
background: var(--teal-light);
color: var(--teal-dark);
display: flex; align-items: center; justify-content: center;
flex-shrink: 0;
transition: transform 0.4s var(--ease), background 0.35s, color 0.35s;
}
.feature-row:hover .ic { background: var(--teal); color: #fff; transform: scale(1.06); }
.feature-row .ic svg { width: 21px; height: 21px; }
.feature-row h4 { font-size: 16.5px; margin-bottom: 4px; }
.feature-row p { color: var(--muted); font-size: 14.5px; }

/* Split layout */
.split {
display: grid;
grid-template-columns: 0.9fr 1.1fr;
gap: 68px;
align-items: center;
}
.split.reverse { grid-template-columns: 1.1fr 0.9fr; }
.split.reverse .split-visual { order: 2; }
.split-visual { position: relative; }
.about-frame {
border-radius: var(--radius-xl);
background: linear-gradient(160deg, var(--navy), var(--teal-deep));
aspect-ratio: 4 / 4.5;
position: relative;
overflow: hidden;
box-shadow: var(--shadow-lg);
display: flex;
align-items: center;
justify-content: center;
}
.about-frame::before {
content: "";
position: absolute;
inset: 0;
background: radial-gradient(circle at 28% 18%, rgba(255, 255, 255, 0.16), transparent 55%);
}
.about-frame::after {
content: "";
position: absolute;
width: 74%;
aspect-ratio: 1;
border-radius: 50%;
border: 1px solid rgba(255, 255, 255, 0.12);
box-shadow: 0 0 0 30px rgba(255, 255, 255, 0.03);
}
.about-frame img { position: relative; width: 34%; max-width: 132px; z-index: 1; display: block; border-radius: 22%; box-shadow: 0 18px 30px -12px rgba(0, 0, 0, 0.4); }
.about-frame > svg { position: relative; width: 44%; opacity: 0.94; z-index: 1; }

.floating-stat {
position: absolute;
bottom: -24px;
left: -24px;
background: #fff;
border: 1px solid var(--line);
border-radius: var(--radius);
box-shadow: var(--shadow);
padding: 18px 24px;
max-width: 230px;
}
.floating-stat strong {
font-family: "Fraunces", Georgia, serif;
font-size: 30px;
color: var(--teal-dark);
display: block;
line-height: 1.1;
}
.floating-stat span {
font-size: 11.5px;
color: var(--muted);
text-transform: uppercase;
letter-spacing: 0.07em;
font-weight: 600;
line-height: 1.45;
display: block;
margin-top: 4px;
}

.split-copy .lead { color: var(--muted); font-size: 16.5px; margin: 18px 0 24px; }
.mv-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 10px; }
.mv-card {
background: var(--bg-alt);
border-radius: var(--radius);
padding: 24px;
border: 1px solid var(--line);
transition: transform 0.4s var(--ease), box-shadow 0.4s var(--ease), background 0.4s;
}
.mv-card:hover { transform: translateY(-4px); background: #fff; box-shadow: var(--shadow-sm); }
.mv-card .ic {
width: 40px; height: 40px;
border-radius: 12px;
background: #fff;
box-shadow: var(--shadow-xs);
display: flex; align-items: center; justify-content: center;
margin-bottom: 14px;
color: var(--teal-dark);
}
.mv-card .ic svg { width: 20px; height: 20px; }
.mv-card h4 { font-size: 15.5px; margin-bottom: 8px; }
.mv-card p { font-size: 13.5px; color: var(--muted); }

/* Motto banner */
.motto-banner {
text-align: center;
padding: 68px 44px;
border-radius: var(--radius-xl);
background: linear-gradient(158deg, var(--navy), var(--teal-deep));
color: #fff;
position: relative;
overflow: hidden;
}
.motto-banner::before {
content: "\201C";
position: absolute;
top: -46px; left: 34px;
font-family: "Fraunces", Georgia, serif;
font-size: 190px;
color: rgba(255, 255, 255, 0.07);
line-height: 1;
}
.motto-banner p {
font-family: "Fraunces", Georgia, serif;
font-size: clamp(20px, 2.6vw, 31px);
max-width: 780px;
margin: 0 auto;
line-height: 1.42;
position: relative;
z-index: 1;
}
.motto-banner span {
display: block;
margin-top: 20px;
font-family: "Inter", sans-serif;
font-size: 12px;
letter-spacing: 0.14em;
text-transform: uppercase;
color: var(--aqua);
font-weight: 600;
position: relative;
z-index: 1;
}

/* Doctors */
.doctor-card { text-align: center; padding: 34px 24px; }
.avatar {
width: 92px; height: 92px;
border-radius: 50%;
margin: 0 auto 20px;
background: linear-gradient(158deg, var(--teal), var(--navy));
color: #fff;
display: flex; align-items: center; justify-content: center;
font-family: "Fraunces", Georgia, serif;
font-size: 29px;
font-weight: 600;
letter-spacing: 0.02em;
box-shadow: 0 16px 30px -14px rgba(10, 37, 64, 0.5);
position: relative;
transition: transform 0.45s var(--ease);
}
.avatar::after {
content: "";
position: absolute;
inset: -7px;
border-radius: 50%;
border: 1px solid rgba(14, 124, 123, 0.22);
transition: transform 0.5s var(--ease), opacity 0.4s;
opacity: 0;
}
.card:hover .avatar { transform: translateY(-3px) scale(1.03); }
.card:hover .avatar::after { opacity: 1; transform: scale(1.05); }
.avatar img,
.avatar-lg img {
width: 100%; height: 100%;
border-radius: 50%;
object-fit: cover;
object-position: center top;
display: block;
}
.doctor-card h3 { font-size: 18px; margin-bottom: 5px; }
.doctor-card .role,
.founder-card .role {
color: var(--teal-dark);
font-weight: 700;
font-size: 12px;
text-transform: uppercase;
letter-spacing: 0.07em;
margin-bottom: 12px;
}
.doctor-card p.desc { color: var(--muted); font-size: 14px; margin-bottom: 16px; }
.doctor-card .cred { display: inline-flex; gap: 8px; }
.doctor-card .cred span {
background: var(--bg-alt);
border: 1px solid var(--line);
padding: 5px 13px;
border-radius: 100px;
font-size: 11.5px;
font-weight: 700;
letter-spacing: 0.06em;
color: var(--navy);
}

/* Founder spotlight */
.founder-card {
display: flex;
gap: 36px;
align-items: center;
padding: 40px;
}
.founder-card .avatar-lg {
width: 120px;
height: 120px;
font-size: 38px;
flex-shrink: 0;
margin: 0;
}
.founder-card h3 { font-size: 24px; margin-bottom: 6px; }
.founder-card .role { margin-bottom: 12px; }
.founder-card p { color: var(--muted); font-size: 15.5px; }

/* Technology cards */
.tech-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; position: relative; z-index: 1; }
.tech-card {
border-radius: var(--radius);
overflow: hidden;
background: rgba(255, 255, 255, 0.05);
border: 1px solid rgba(255, 255, 255, 0.1);
color: #fff;
padding: 32px 28px;
position: relative;
transition: transform 0.45s var(--ease), background 0.4s, border-color 0.4s;
}
.tech-card:hover {
transform: translateY(-6px);
background: rgba(255, 255, 255, 0.09);
border-color: rgba(122, 203, 210, 0.4);
}
.tech-card .ic {
width: 50px; height: 50px;
border-radius: 14px;
background: rgba(122, 203, 210, 0.14);
display: flex; align-items: center; justify-content: center;
margin-bottom: 20px;
transition: transform 0.45s var(--ease), background 0.4s;
}
.tech-card:hover .ic { background: rgba(122, 203, 210, 0.24); transform: scale(1.06); }
.tech-card .ic svg { width: 24px; height: 24px; color: var(--aqua); }
.tech-card h3 { color: #fff; font-size: 19px; margin-bottom: 10px; }
.tech-card p { color: rgba(255, 255, 255, 0.68); font-size: 14.5px; }

/* Gallery */
.gallery-card {
border-radius: var(--radius);
overflow: hidden;
position: relative;
aspect-ratio: 4 / 3.2;
display: flex;
align-items: flex-end;
padding: 26px;
transition: transform 0.5s var(--ease), box-shadow 0.5s var(--ease);
}
.gallery-card:hover { transform: translateY(-6px); box-shadow: var(--shadow); }
.gallery-card .tint { position: absolute; inset: 0; opacity: 0.96; transition: transform 0.7s var(--ease); }
.gallery-card:hover .tint { transform: scale(1.06); }
.gallery-card::after {
content: "";
position: absolute;
inset: 0;
background: linear-gradient(to top, rgba(4, 16, 28, 0.5), transparent 62%);
}
.gallery-card .content { position: relative; z-index: 1; color: #fff; }
.gallery-card .ic {
width: 44px; height: 44px;
border-radius: 13px;
background: rgba(255, 255, 255, 0.18);
-webkit-backdrop-filter: blur(4px);
backdrop-filter: blur(4px);
display: flex; align-items: center; justify-content: center;
margin-bottom: 14px;
transition: transform 0.45s var(--ease), background 0.4s;
}
.gallery-card:hover .ic { background: rgba(255, 255, 255, 0.28); transform: translateY(-3px); }
.gallery-card .ic svg { width: 21px; height: 21px; }
.gallery-card h4 { color: #fff; font-size: 17.5px; margin-bottom: 6px; }
.gallery-card p { color: rgba(255, 255, 255, 0.78); font-size: 13.5px; }
.g1 .tint { background: linear-gradient(158deg, rgba(10, 37, 64, 0.55), rgba(14, 124, 123, 0.4)), url("../assets/gallery/clear-aligners-3dprinting.jpg") center/cover no-repeat; }
.g2 .tint { background: linear-gradient(158deg, rgba(9, 92, 91, 0.5), rgba(22, 52, 74, 0.45)), url("../assets/gallery/laser-dentistry-device.jpg") center/cover no-repeat; }
.g3 .tint { background: linear-gradient(158deg, rgba(22, 52, 74, 0.5), rgba(10, 37, 64, 0.45)), url("../assets/gallery/digital-scanner-workstation.jpg") center/cover no-repeat; }
.g4 .tint { background: linear-gradient(158deg, rgba(14, 124, 123, 0.5), rgba(10, 37, 64, 0.45)), url("../assets/gallery/sterilization-pouches.jpg") center/cover no-repeat; }
.g5 .tint { background: linear-gradient(158deg, rgba(10, 37, 64, 0.5), rgba(9, 92, 91, 0.45)), url("../assets/gallery/treatment-room-wide.jpg") center/cover no-repeat; }
.g6 .tint { background: linear-gradient(158deg, rgba(22, 52, 74, 0.5), rgba(14, 124, 123, 0.4)), url("../assets/gallery/reception-waiting-area.jpg") center/cover no-repeat; }

/* Before / After transformation cards */
.ba-card {
background: #fff;
border: 1px solid var(--line);
border-radius: var(--radius);
overflow: hidden;
transition: transform 0.45s var(--ease), box-shadow 0.45s var(--ease), border-color 0.45s var(--ease);
}
.ba-card:hover {
transform: translateY(-5px);
box-shadow: var(--shadow);
border-color: rgba(14, 124, 123, 0.18);
}
.ba-images { display: flex; }
.ba-half {
position: relative;
flex: 1 1 50%;
aspect-ratio: 1 / 1.02;
overflow: hidden;
}
.ba-half:first-child { border-right: 2px solid #fff; }
.ba-half img {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
transition: transform 0.6s var(--ease);
}
.ba-card:hover .ba-half img { transform: scale(1.05); }
.ba-half .ba-tag {
position: absolute;
left: 8px;
bottom: 8px;
font-size: 10px;
font-weight: 700;
letter-spacing: 0.09em;
text-transform: uppercase;
color: #fff;
background: rgba(10, 37, 64, 0.72);
-webkit-backdrop-filter: blur(2px);
backdrop-filter: blur(2px);
padding: 3px 8px;
border-radius: 6px;
}
.ba-half.ba-after .ba-tag { background: rgba(14, 124, 123, 0.82); }
.ba-card .ba-caption { padding: 16px 18px 19px; }
.ba-card .ba-caption h4 { font-size: 15.5px; margin-bottom: 4px; color: var(--navy); }
.ba-card .ba-caption p { font-size: 12.5px; color: var(--muted); line-height: 1.45; }
.ba-consent-note {
text-align: center;
font-size: 12.5px;
color: var(--muted-2);
margin-top: 34px;
}

/* CTA banner */
.cta-banner {
border-radius: var(--radius-xl);
background: linear-gradient(122deg, var(--teal) 0%, var(--teal-deep) 100%);
padding: 54px 58px;
display: flex;
align-items: center;
justify-content: space-between;
gap: 34px;
position: relative;
overflow: hidden;
box-shadow: var(--shadow);
}
.cta-banner::after {
content: "";
position: absolute;
right: -70px; bottom: -110px;
width: 300px; height: 300px;
border-radius: 50%;
background: rgba(255, 255, 255, 0.07);
}
.cta-banner::before {
content: "";
position: absolute;
left: -40px; top: -90px;
width: 200px; height: 200px;
border-radius: 50%;
background: rgba(255, 255, 255, 0.05);
}
.cta-banner > div { position: relative; z-index: 1; }
.cta-banner h2 { color: #fff; font-size: clamp(24px, 2.8vw, 33px); max-width: 520px; }
.cta-banner p { color: rgba(255, 255, 255, 0.82); margin-top: 10px; font-size: 15.5px; max-width: 520px; }
.cta-actions { display: flex; gap: 13px; flex-wrap: wrap; position: relative; z-index: 1; }

/* --- Contact --- */
.contact-shell {
display: grid;
grid-template-columns: 0.86fr 1.14fr;
background: #fff;
border: 1px solid var(--line);
border-radius: var(--radius-xl);
box-shadow: var(--shadow);
overflow: hidden;
}
.contact-aside {
background: linear-gradient(168deg, var(--navy) 0%, var(--teal-deep) 100%);
color: rgba(255, 255, 255, 0.78);
padding: 46px 40px;
position: relative;
overflow: hidden;
}
.contact-aside > * { position: relative; z-index: 1; }
.contact-aside > .ambient { z-index: 0; opacity: 0.8; }
.contact-aside h2 { color: #fff; font-size: 27px; margin-bottom: 10px; }
.contact-aside > p { font-size: 15px; margin-bottom: 26px; color: rgba(255, 255, 255, 0.66); }

.info-row {
display: flex;
gap: 15px;
align-items: flex-start;
padding: 17px 0;
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.info-row:last-of-type { border-bottom: none; }
.info-row .ic {
width: 42px; height: 42px;
border-radius: 12px;
background: rgba(122, 203, 210, 0.14);
color: var(--aqua);
display: flex; align-items: center; justify-content: center;
flex-shrink: 0;
transition: background 0.35s, transform 0.4s var(--ease);
}
.info-row:hover .ic { background: rgba(122, 203, 210, 0.26); transform: scale(1.05); }
.info-row .ic svg { width: 19px; height: 19px; }
.info-row h4 {
color: #fff;
font-size: 14px;
margin-bottom: 4px;
font-family: "Inter", sans-serif;
font-weight: 700;
letter-spacing: 0.03em;
text-transform: uppercase;
}
.info-row p,
.info-row a { font-size: 14.5px; color: rgba(255, 255, 255, 0.72); line-height: 1.6; }
.info-row a:hover { color: var(--aqua); }

.aside-social { display: flex; gap: 10px; margin-top: 26px; }
.aside-social a {
width: 40px; height: 40px;
border-radius: 12px;
background: rgba(255, 255, 255, 0.08);
display: flex; align-items: center; justify-content: center;
color: #fff;
transition: background 0.25s, transform 0.3s var(--ease), color 0.25s;
}
.aside-social a:hover { background: var(--aqua); color: var(--navy); transform: translateY(-3px); }
.aside-social svg { width: 17px; height: 17px; }

.contact-form-panel { padding: 46px 44px; }
.contact-form-panel h2 { font-size: 26px; margin-bottom: 8px; }
.contact-form-panel > p { color: var(--muted); margin-bottom: 26px; font-size: 15px; }

.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.field { margin-bottom: 16px; }
.field label {
display: block;
font-size: 12.5px;
font-weight: 700;
color: var(--navy);
margin-bottom: 7px;
letter-spacing: 0.02em;
}
.field input,
.field select,
.field textarea {
width: 100%;
padding: 14px 16px;
border-radius: var(--radius-sm);
border: 1.5px solid var(--line);
font-family: inherit;
font-size: 15px;
color: var(--ink);
background: var(--bg-alt);
transition: border-color 0.25s, background 0.25s, box-shadow 0.25s;
-webkit-appearance: none;
appearance: none;
}
.field input::placeholder,
.field textarea::placeholder { color: var(--muted-2); }
.field select {
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23566b7c' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
background-repeat: no-repeat;
background-position: right 15px center;
background-size: 17px;
padding-right: 42px;
cursor: pointer;
}
.field input:hover,
.field select:hover,
.field textarea:hover { border-color: #d3dde2; }
.field input:focus,
.field select:focus,
.field textarea:focus {
outline: none;
border-color: var(--teal);
background: #fff;
box-shadow: var(--ring);
}
.field textarea { resize: vertical; min-height: 122px; }
.form-note { font-size: 12.5px; color: var(--muted-2); margin-top: 16px; text-align: center; }
.form-note a { color: var(--teal-dark); font-weight: 700; }
.form-status {
display: none;
margin-top: 16px;
padding: 13px 16px;
border-radius: var(--radius-sm);
background: var(--teal-light);
border: 1px solid rgba(14, 124, 123, 0.2);
color: var(--teal-dark);
font-size: 14px;
font-weight: 600;
text-align: center;
}
.form-status.show { display: block; animation: fadeInUp 0.5s var(--ease) both; }
.form-status.is-error {
background: #fdeaea;
border-color: rgba(192, 69, 90, 0.25);
color: #c0455a;
}

/* Map */
.map-shell {
position: relative;
border-radius: var(--radius-xl);
overflow: hidden;
border: 1px solid var(--line);
box-shadow: var(--shadow-sm);
background: var(--bg-alt);
}
.map-shell iframe {
width: 100%;
height: 430px;
border: 0;
display: block;
filter: grayscale(18%) contrast(1.03) saturate(0.92);
}
.map-overlay {
position: absolute;
left: 26px;
bottom: 26px;
background: rgba(255, 255, 255, 0.96);
-webkit-backdrop-filter: blur(10px);
backdrop-filter: blur(10px);
border-radius: var(--radius);
box-shadow: var(--shadow);
padding: 22px 24px;
max-width: 340px;
}
.map-overlay h4 { font-size: 16.5px; margin-bottom: 8px; }
.map-overlay p { font-size: 13.5px; color: var(--muted); margin-bottom: 16px; line-height: 1.55; }

/* Footer */
.site-footer {
background: linear-gradient(180deg, var(--navy) 0%, var(--navy-deep) 100%);
color: rgba(255, 255, 255, 0.62);
padding-top: 84px;
position: relative;
overflow: hidden;
}
.footer-grid {
display: grid;
grid-template-columns: 1.35fr 0.8fr 1fr 1.05fr;
gap: 48px;
padding-bottom: 54px;
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
position: relative;
z-index: 1;
}
.footer-logo { height: 56px; width: auto; margin-bottom: 20px; }
.footer-brand p { font-size: 14.5px; max-width: 310px; margin-bottom: 22px; }
.footer-social { display: flex; gap: 10px; }
.footer-social a {
width: 38px; height: 38px;
border-radius: 11px;
background: rgba(255, 255, 255, 0.08);
display: flex; align-items: center; justify-content: center;
transition: background 0.25s, transform 0.3s var(--ease), color 0.25s;
}
.footer-social a:hover { background: var(--aqua); color: var(--navy); transform: translateY(-3px); }
.footer-social svg { width: 17px; height: 17px; }
.site-footer h5 {
color: #fff;
font-family: "Inter", sans-serif;
font-size: 13px;
letter-spacing: 0.11em;
text-transform: uppercase;
margin-bottom: 22px;
font-weight: 700;
}
.flinks li { margin-bottom: 12px; font-size: 14.5px; }
.flinks a { display: flex; align-items: flex-start; gap: 9px; transition: color 0.25s, transform 0.3s var(--ease); line-height: 1.55; }
.flinks a:hover { color: var(--aqua); transform: translateX(3px); }
.flinks svg { width: 14px; height: 14px; opacity: 0.55; flex-shrink: 0; margin-top: 4px; }
.footer-bottom {
display: flex;
justify-content: space-between;
align-items: center;
padding: 24px 0;
font-size: 13px;
flex-wrap: wrap;
gap: 10px;
position: relative;
z-index: 1;
}

/* WhatsApp float */
.float-cta {
position: fixed;
right: 22px;
bottom: 22px;
z-index: 80;
width: 56px; height: 56px;
border-radius: 50%;
background: #1fab54;
display: flex; align-items: center; justify-content: center;
box-shadow: 0 14px 28px -10px rgba(31, 171, 84, 0.65);
transition: transform 0.4s var(--ease), box-shadow 0.4s var(--ease);
}
.float-cta::before {
content: "";
position: absolute;
inset: 0;
border-radius: 50%;
animation: pulse 3s ease-out infinite;
}
.float-cta:hover { transform: scale(1.08); }
.float-cta svg { width: 27px; height: 27px; color: #fff; position: relative; }
@keyframes pulse {
0% { box-shadow: 0 0 0 0 rgba(31, 171, 84, 0.45); }
70% { box-shadow: 0 0 0 16px rgba(31, 171, 84, 0); }
100% { box-shadow: 0 0 0 0 rgba(31, 171, 84, 0); }
}

/* ---------------------------------------------------------
9. MOTION / REVEAL
--------------------------------------------------------- */
@keyframes fadeInUp {
from { opacity: 0; transform: translateY(20px); }
to { opacity: 1; transform: translateY(0); }
}

/* Content is only hidden when JS is present to reveal it again */
.js .reveal {
opacity: 0;
transform: translateY(22px);
transition: opacity 0.8s var(--ease), transform 0.8s var(--ease);
will-change: opacity, transform;
}
.js .reveal.is-visible {
opacity: 1;
transform: none;
will-change: auto;
}

.js .reveal[data-delay="1"] { transition-delay: 0.08s; }
.js .reveal[data-delay="2"] { transition-delay: 0.16s; }
.js .reveal[data-delay="3"] { transition-delay: 0.24s; }
.js .reveal[data-delay="4"] { transition-delay: 0.32s; }
.js .reveal[data-delay="5"] { transition-delay: 0.40s; }

.parallax { will-change: transform; }

/* ---------------------------------------------------------
10. RESPONSIVE
--------------------------------------------------------- */
@media (max-width: 1180px) {
.main-nav a { padding: 10px 12px; font-size: 14px; }
.main-nav a::after { left: 12px; right: 12px; }
.nav-phone .txt { display: none; }
}

@media (max-width: 1024px) {
:root { --space-section: 88px; --gutter: 24px; }
.hero { padding: 72px 0 84px; }
.hero .container { grid-template-columns: 1fr; gap: 54px; }
.hero-visual { max-width: 400px; margin: 0 auto; width: 100%; }
.hero-copy p.lead { max-width: 620px; }
.split,
.split.reverse { grid-template-columns: 1fr; gap: 48px; }
.split.reverse .split-visual { order: 0; }
.split-visual { max-width: 440px; }
.about-frame { aspect-ratio: 4 / 3.4; }
.grid-3, .grid-4, .grid-5 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tech-row { grid-template-columns: 1fr; }
.trust-strip .container { grid-template-columns: repeat(2, 1fr); row-gap: 26px; }
.trust-strip .item:nth-child(3) { border-left: none; }
.contact-shell { grid-template-columns: 1fr; }
.footer-grid { grid-template-columns: 1fr 1fr; row-gap: 42px; }
.map-shell iframe { height: 380px; }
}

/* Navigation switches to the slide-in panel */
@media (max-width: 980px) {
.main-nav { display: none; }
.nav-toggle { display: flex; }
.nav-phone .txt { display: flex; }
}

@media (max-width: 860px) {
.nav-phone .txt { display: none; }
.topbar-links .hide-sm { display: none; }
.cta-banner { flex-direction: column; text-align: center; padding: 46px 32px; align-items: center; }
.cta-banner h2, .cta-banner p { max-width: 100%; }
.cta-actions { justify-content: center; }
.contact-aside, .contact-form-panel { padding: 38px 30px; }
}

@media (max-width: 720px) {
:root { --space-section: 68px; --gutter: 20px; --header-h: 68px; }
.section.tight { padding: 56px 0; }
.section-head { margin-bottom: 40px; }
.grid-2, .grid-3, .grid-4, .grid-5 { grid-template-columns: 1fr; }
.form-row { grid-template-columns: 1fr; gap: 0; }
.footer-grid { grid-template-columns: 1fr; gap: 34px; padding-bottom: 42px; }
.service-detail { grid-template-columns: 1fr; gap: 18px; padding: 30px 0; }
.service-detail .ic-lg { width: 60px; height: 60px; border-radius: 17px; }
.service-detail .ic-lg svg { width: 28px; height: 28px; }
.mv-cards { grid-template-columns: 1fr; }
  .founder-card { flex-direction: column; text-align: center; gap: 22px; padding: 34px 24px; }
  .founder-card .avatar-lg { width: 96px; height: 96px; font-size: 31px; }
  .floating-stat { position: relative; z-index: 2; margin: -28px auto 0; max-width: none; width: fit-content; }
  .split-visual { max-width: 100%; }
  .topbar-social { display: none; }
  .topbar .container { justify-content: center; }
  .topbar-links { gap: 18px; }
  .nav-phone { display: none; }
  /* Header CTA is redundant with the mobile-nav panel's own "Book Appointment"
     button once the hamburger takes over — hide it here so brand + toggle
     never overflow narrow phone widths. */
  .nav-cta .btn-primary.btn-sm { display: none; }
  .hero-stats { grid-template-columns: repeat(2, 1fr); gap: 18px 20px; }
  .footer-bottom { justify-content: center; text-align: center; }
  .map-overlay {
    position: static;
    max-width: none;
    border-radius: 0;
    box-shadow: none;
    border-top: 1px solid var(--line);
  }
  .map-shell iframe { height: 300px; }
  .motto-banner { padding: 48px 26px; }
  .cta-banner { padding: 40px 24px; }
  .cta-actions { width: 100%; flex-direction: column; }
  .cta-actions .btn { width: 100%; }
}

@media (max-width: 480px) {
  :root { --gutter: 16px; }
  body { font-size: 15.5px; }
  .topbar { font-size: 12.5px; }
  .brand-logo { height: 38px; }
  .site-header.scrolled .brand-logo { height: 34px; }
  .brand-mark { width: 36px; height: 36px; border-radius: 10px; }
  .brand-mark svg { width: 19px; height: 19px; }
  .site-header.scrolled .brand-mark { width: 32px; height: 32px; }
  .brand-text .name { font-size: 14.5px; }
  .brand-text .sub { font-size: 9.5px; }
  .nav-inner { gap: 10px; padding: 10px 0; }
  .nav-cta { gap: 8px; }
  .nav-cta .btn-sm { padding: 10px 14px; font-size: 12.5px; min-height: 40px; }
  .nav-toggle { width: 42px; height: 42px; border-radius: 11px; }
  .hero { padding: 52px 0 66px; }
  .hero-actions { gap: 10px; }
  .hero-actions .btn { width: 100%; }
  .badge-card { padding: 11px 13px; font-size: 12px; gap: 9px; }
  .badge-card .ic { width: 32px; height: 32px; border-radius: 9px; }
  .badge-card .ic svg { width: 16px; height: 16px; }
  .badge-card small { font-size: 10.5px; }
  .badge-1 { left: -4px; top: 3%; }
  .badge-2 { right: -4px; bottom: 6%; }
  .badge-3 { display: none; }
  .card { padding: 26px 22px; }
  .contact-aside, .contact-form-panel { padding: 30px 20px; }
  .service-detail ul li { font-size: 12.5px; padding: 6px 12px; }
  .page-hero { padding: 56px 0 52px; }
  .float-cta { width: 52px; height: 52px; right: 16px; bottom: 16px; }
  .float-cta svg { width: 24px; height: 24px; }
  .mobile-nav { width: 100%; padding: 16px 18px calc(20px + env(safe-area-inset-bottom)); }
  .mobile-nav-links a { font-size: 19px; min-height: 54px; }
  .floating-stat { padding: 16px 20px; }
  .floating-stat strong { font-size: 26px; }
}

@media (max-width: 360px) {
  .nav-cta .btn-sm { padding: 9px 12px; font-size: 12px; }
  .brand-logo { height: 34px; }
  .brand-mark { width: 32px; height: 32px; }
  .brand-mark svg { width: 17px; height: 17px; }
  .brand-text .sub { display: none; }
  .hero-stats { gap: 16px 14px; }
  .hero-stats div strong { font-size: 23px; }
  .trust-strip strong { font-size: 26px; }
  .service-detail h3 { font-size: 20px; }
}

/* ---------------------------------------------------------
   ACCESSIBILITY & PERFORMANCE GUARDS
   --------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *,
  *::before,
  *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
  .js .reveal { opacity: 1 !important; transform: none !important; }
  .ambient-particles,
  .ambient-grid { display: none; }
  .mobile-nav.open .mobile-nav-links a { opacity: 1; transform: none; }
}

/* The blur radius is the expensive part — lighten it on small screens */
@media (max-width: 720px) {
  .ambient-blob { filter: blur(42px); opacity: 0.42; }
  .ambient-blob.b3 { display: none; }
  .ambient-particles i:nth-child(n + 26) { display: none; }
  .ambient-grid { background-size: 46px 46px; }
}

@media (hover: none) {
  .btn:hover { transform: none; }
  .card:hover { transform: none; }
  .gallery-card:hover { transform: none; }
}
