/* =========================================================
   LITTLE GIGGLES — Design System
   ========================================================= */

:root {
	--pink: #ec4a7a;
	--pink-dark: #d13767;
	--pink-light: #ffe3ec;
	--navy: #1e3a5f;
	--navy-light: #2c5182;
	--blue: #4a90c2;
	--green: #3fb37f;
	--yellow: #f4b740;
	--purple: #9b7fd4;
	--cream: #fff9f5;
	--gray-50: #faf9fb;
	--gray-100: #f2f0f5;
	--gray-400: #8b8a99;
	--gray-700: #4a4959;
	--text: #2c2b3a;
	--radius-sm: 10px;
	--radius-md: 18px;
	--radius-lg: 28px;
	--shadow-sm: 0 4px 16px rgba(30, 20, 50, 0.06);
	--shadow-md: 0 12px 32px rgba(30, 20, 50, 0.1);
	--shadow-lg: 0 24px 60px rgba(30, 20, 50, 0.16);
	--ease: cubic-bezier(.25, .8, .25, 1);
}

/* -------------------- Reset -------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body.lgc-body {
	margin: 0;
	font-family: 'Poppins', 'Segoe UI', system-ui, sans-serif;
	color: var(--text);
	background: var(--cream);
	overflow-x: hidden;
	-webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { text-decoration: none; color: inherit; }
ul { list-style: none; margin: 0; padding: 0; }
button { font-family: inherit; cursor: pointer; }
.lgc-container { max-width: 1240px; margin: 0 auto; padding: 0 24px; }
.screen-reader-text { position: absolute; left: -9999px; }
.lgc-skip-link:focus { left: 12px; top: 12px; z-index: 9999; background: #fff; padding: 10px 16px; border-radius: 8px; }

/* -------------------- Perfect Circle Utility --------------------
   Fixes any "oval instead of circle" bugs: always pair a fixed
   width+height with aspect-ratio:1 and flex centering, never rely
   on padding alone to create circular icon containers. */
.lgc-circle {
	aspect-ratio: 1 / 1;
	border-radius: 50% !important;
	box-sizing: border-box !important;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	overflow: hidden;
	padding: 0;
}

/* -------------------- Buttons -------------------- */
.lgc-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 14px 26px;
	border-radius: 999px;
	font-weight: 600;
	font-size: 0.95rem;
	border: none;
	transition: transform .25s var(--ease), box-shadow .25s var(--ease), background .25s var(--ease);
	white-space: nowrap;
}
.lgc-btn-primary { background: linear-gradient(135deg, var(--pink), var(--pink-dark)); color: #fff !important; box-shadow: 0 8px 24px rgba(236, 74, 122, .35); }
.lgc-btn-primary:hover, .lgc-btn-primary:hover span, .lgc-btn-primary:focus { color: var(--yellow) !important; transform: translateY(-3px) scale(1.02); box-shadow: 0 14px 34px rgba(236, 74, 122, .45); }
.lgc-btn-outline { background: #fff; color: var(--navy); border: 1.6px solid #e4e1ee; }
.lgc-btn-outline:hover { transform: translateY(-3px); border-color: var(--pink); color: var(--pink); box-shadow: var(--shadow-sm); }
.lgc-btn-sm { padding: 10px 20px; font-size: 0.85rem; }

/* -------------------- Header -------------------- */
.lgc-header {
	position: sticky; top: 0; z-index: 500;
	background: rgba(255, 249, 245, .92);
	backdrop-filter: blur(10px);
	border-bottom: 1px solid rgba(30, 20, 50, .06);
}
.lgc-header-inner { display: flex; align-items: center; justify-content: space-between; padding: 14px 24px; gap: 20px; }
.lgc-logo { display: flex; align-items: center; gap: 10px; }
.lgc-logo-icon { animation: lgc-wiggle 4s ease-in-out infinite; }
.lgc-logo-text { display: flex; flex-direction: column; line-height: 1.1; }
.lgc-word { font-size: 1.35rem; font-weight: 800; }
.lgc-logo-text small { font-size: .62rem; color: var(--gray-400); font-weight: 500; letter-spacing: .02em; }
.lgc-word-1 { color: var(--navy); }
.lgc-word-2 .c1 { color: var(--pink); } .lgc-word-2 .c2 { color: var(--green); } .lgc-word-2 .c3 { color: var(--yellow); } .lgc-word-2 .c4 { color: var(--purple); }

.lgc-nav ul { display: flex; flex-wrap: nowrap; gap: clamp(12px, 1.6vw, 28px); white-space: nowrap; }
.lgc-nav a { font-weight: 600; font-size: clamp(.78rem, 1vw, .93rem); color: var(--navy); position: relative; padding: 6px 0; }
.lgc-nav a::after {
	content: ''; position: absolute; left: 0; bottom: 0; height: 2px; width: 0;
	background: var(--pink); transition: width .3s var(--ease);
}
.lgc-nav a:hover::after, .lgc-nav a.active::after { width: 100%; }
.lgc-nav a:hover { color: var(--pink); }

.lgc-header-actions { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.lgc-call-icon-btn {
	width: 40px !important; height: 40px !important; aspect-ratio: 1 / 1;
	min-width: 0; max-width: 40px; box-sizing: border-box !important;
	border-radius: 50% !important; border: 1.4px solid #e4e1ee !important; padding: 0 !important;
	display: flex; align-items: center; justify-content: center; flex-shrink: 0;
	background: #fff; transition: box-shadow .25s, transform .25s, background .25s;
}
.lgc-call-icon-btn:hover { transform: translateY(-2px); box-shadow: var(--shadow-sm); background: var(--pink-light); }
.lgc-call-icon-btn svg { display: block; }

.lgc-menu-toggle { display: none; flex-direction: column; gap: 5px; background: none; border: none; padding: 8px; }
.lgc-menu-toggle span { width: 24px; height: 2.4px; background: var(--navy); border-radius: 2px; transition: transform .3s var(--ease), opacity .3s; }
.lgc-menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7.4px) rotate(45deg); }
.lgc-menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.lgc-menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7.4px) rotate(-45deg); }

@keyframes lgc-wiggle { 0%, 100% { transform: rotate(0deg); } 25% { transform: rotate(-8deg); } 75% { transform: rotate(8deg); } }

/* -------------------- Section basics -------------------- */
.lgc-section { padding: 90px 0; }
.lgc-section-tight { padding: 60px 0; }
.lgc-eyebrow {
	display: inline-flex; align-items: center; gap: 8px;
	background: var(--pink-light); color: var(--pink-dark);
	font-weight: 700; font-size: .78rem; padding: 8px 18px; border-radius: 999px; margin-bottom: 18px;
}
.lgc-h2 { font-size: clamp(1.7rem, 3vw, 2.4rem); font-weight: 800; color: var(--navy); margin: 0 0 14px; }
.lgc-lead { color: var(--gray-700); font-size: 1.05rem; max-width: 640px; margin: 0 0 40px; line-height: 1.7; }
.lgc-center { text-align: center; margin-left: auto; margin-right: auto; }

/* -------------------- Hero -------------------- */
.lgc-hero { position: relative; padding: 60px 0 40px; overflow: hidden; }
.lgc-hero-grid { display: grid; grid-template-columns: 1.05fr 1fr; gap: 50px; align-items: center; }
.lgc-hero-badges { display: flex; gap: 22px; margin: 26px 0 32px; }
.lgc-hero-badge { display: flex; flex-direction: column; align-items: center; gap: 8px; font-size: .78rem; font-weight: 600; color: var(--navy); width: 84px; text-align: center; }
.lgc-hero-badge .lgc-circle { width: 60px; height: 60px; box-shadow: var(--shadow-sm); transition: transform .3s var(--ease); }
.lgc-hero-badge:hover .lgc-circle { transform: translateY(-6px) rotate(-6deg); }
.lgc-hero-title { font-size: clamp(2.3rem, 4.6vw, 3.4rem); font-weight: 800; line-height: 1.12; color: var(--navy); margin: 0 0 18px; }
.lgc-hero-title .lgc-hl-1 { color: var(--green); }
.lgc-hero-title .lgc-hl-2 { color: var(--pink); position: relative; }
.lgc-hero-actions { display: flex; gap: 16px; flex-wrap: wrap; }

.lgc-hero-art { position: relative; }
.lgc-hero-art-shape {
	position: relative; border-radius: var(--radius-lg);
	background: linear-gradient(135deg, #ffe9d6, #ffd9e6);
	padding: 20px; box-shadow: var(--shadow-lg);
	animation: lgc-float 6s ease-in-out infinite;
}
.lgc-hero-art-shape svg { width: 100%; height: auto; display: block; border-radius: 20px; }
.lgc-hero-floating-card {
	position: absolute; background: #fff; border-radius: var(--radius-md);
	box-shadow: var(--shadow-md); padding: 14px 18px; display: flex; align-items: center; gap: 12px;
	animation: lgc-bob 4.5s ease-in-out infinite;
}
.lgc-hero-floating-card.card-1 { top: 8%; left: -6%; animation-delay: .3s; }
.lgc-hero-floating-card.card-2 { bottom: 6%; right: -8%; animation-delay: 1s; }
.lgc-hero-floating-card strong { display: block; font-size: .82rem; color: var(--navy); }
.lgc-hero-floating-card small { color: var(--gray-400); font-size: .72rem; }
.lgc-hero-floating-card a { color: var(--pink); font-weight: 700; font-size: .78rem; }

.lgc-hero-deco { position: absolute; border-radius: 50%; opacity: .5; filter: blur(1px); pointer-events: none; }
.lgc-hero-deco-1 { width: 90px; height: 90px; background: var(--yellow); top: -10px; right: 20%; animation: lgc-drift 8s ease-in-out infinite; }
.lgc-hero-deco-2 { width: 50px; height: 50px; background: var(--purple); bottom: 10%; left: 4%; animation: lgc-drift 7s ease-in-out infinite reverse; }
.lgc-hero-deco-3 { width: 30px; height: 30px; background: var(--green); top: 40%; right: 2%; animation: lgc-drift 9s ease-in-out infinite; }

@keyframes lgc-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-14px); } }
@keyframes lgc-bob { 0%, 100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-10px) rotate(-2deg); } }
@keyframes lgc-drift { 0%, 100% { transform: translate(0, 0); } 50% { transform: translate(14px, -18px); } }

/* -------------------- Services Grid -------------------- */
.lgc-services-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.lgc-service-card {
	background: #fff; border-radius: var(--radius-md); padding: 30px 24px;
	box-shadow: var(--shadow-sm); transition: transform .35s var(--ease), box-shadow .35s var(--ease);
	border: 1px solid rgba(30,20,50,.04);
}
.lgc-service-card:hover { transform: translateY(-10px); box-shadow: var(--shadow-lg); }
.lgc-service-icon { width: 62px; height: 62px; margin-bottom: 18px; transition: transform .4s var(--ease); }
.lgc-service-card:hover .lgc-service-icon { transform: scale(1.12) rotate(-6deg); }
.lgc-service-card h3 { font-size: 1.08rem; color: var(--navy); margin: 0 0 8px; }
.lgc-service-card p { font-size: .88rem; color: var(--gray-700); line-height: 1.6; margin: 0 0 14px; }
.lgc-service-card a { font-weight: 700; font-size: .82rem; color: var(--pink); display: inline-flex; align-items: center; gap: 6px; }
.lgc-service-card a svg { transition: transform .25s var(--ease); }
.lgc-service-card a:hover svg { transform: translateX(4px); }

/* -------------------- Kids Specialist band -------------------- */
.lgc-kids-band { background: linear-gradient(135deg, #f4effe, #fdeef4); border-radius: var(--radius-lg); padding: 56px; display: grid; grid-template-columns: 1fr 0.9fr 0.9fr; gap: 40px; align-items: center; position: relative; overflow: hidden; }
.lgc-kids-copy ul { margin-top: 18px; display: flex; flex-direction: column; gap: 12px; }
.lgc-kids-copy li { display: flex; align-items: center; gap: 10px; font-weight: 600; font-size: .92rem; color: var(--navy); }
.lgc-check { width: 22px; height: 22px; background: var(--green); color: #fff; font-size: .75rem; }
.lgc-kids-photo { border-radius: var(--radius-md); overflow: hidden; box-shadow: var(--shadow-md); }
.lgc-kids-photo svg { width: 100%; height: auto; }
.lgc-stage-card { background: #fff; border-radius: var(--radius-md); box-shadow: var(--shadow-md); padding: 22px; }
.lgc-stage-card h4 { margin: 0 0 14px; color: var(--navy); font-size: 1rem; }
.lgc-stage-row { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid #f0edf7; transition: transform .25s; }
.lgc-stage-row:last-child { border-bottom: none; }
.lgc-stage-row:hover { transform: translateX(4px); }
.lgc-stage-avatar { width: 40px; height: 40px; font-size: 1.1rem; }
.lgc-stage-row span { flex: 1; font-size: .85rem; }
.lgc-stage-row small { display: block; color: var(--gray-400); font-size: .72rem; }
.lgc-stage-arrow { width: 30px; height: 30px; }

/* -------------------- Why choose us -------------------- */
.lgc-why-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 18px; }
.lgc-why-card { text-align: center; padding: 26px 14px; border-radius: var(--radius-md); transition: transform .3s var(--ease), background .3s; }
.lgc-why-card:hover { transform: translateY(-8px); background: #fff; box-shadow: var(--shadow-sm); }
.lgc-why-icon { width: 58px; height: 58px; margin: 0 auto 14px; }
.lgc-why-card p { font-size: .84rem; font-weight: 600; color: var(--navy); margin: 0; }

/* -------------------- Doctor profile -------------------- */
.lgc-doctor { display: grid; grid-template-columns: 0.8fr 1.2fr 0.9fr; gap: 40px; align-items: center; }
.lgc-doctor-photo { border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-md); position: relative; }
.lgc-doctor-photo svg { width: 100%; height: auto; }
.lgc-doctor-tags { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.lgc-tag { background: var(--gray-100); border-radius: 999px; padding: 8px 14px; font-size: .78rem; font-weight: 600; color: var(--navy); display: inline-flex; align-items: center; gap: 6px; }
.lgc-quote-card { background: var(--navy); color: #fff; border-radius: var(--radius-md); padding: 30px; position: relative; }
.lgc-quote-card .lgc-quote-mark { font-size: 2.6rem; color: var(--pink); line-height: 0; display: block; margin-bottom: 10px; }
.lgc-quote-card strong { display: block; margin-top: 16px; color: var(--pink); }

/* -------------------- Stats -------------------- */
.lgc-stats { background: var(--navy); color: #fff; padding: 40px 0; }
.lgc-stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; text-align: center; }
.lgc-stat h3 { font-size: 2rem; color: var(--yellow); margin: 0 0 4px; font-weight: 800; }
.lgc-stat p { margin: 0; font-size: .85rem; color: #cdd8ea; }

/* -------------------- Appointment / Enquiry Form -------------------- */
.lgc-booking { background: #fff; border-radius: var(--radius-lg); box-shadow: var(--shadow-md); padding: 40px; }
.lgc-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.lgc-field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 18px; }
.lgc-field label { font-size: .8rem; font-weight: 700; color: var(--navy); }
.lgc-field input, .lgc-field select {
	padding: 13px 16px; border-radius: var(--radius-sm); border: 1.6px solid #e7e4f0; font-size: .92rem;
	font-family: inherit; transition: border-color .25s, box-shadow .25s;
	background: var(--gray-50);
}
.lgc-field input:focus, .lgc-field select:focus { outline: none; border-color: var(--pink); box-shadow: 0 0 0 4px rgba(236,74,122,.12); }
.lgc-slot-group { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.lgc-slot-option {
	border: 1.6px solid #e7e4f0; border-radius: var(--radius-md); padding: 16px; cursor: pointer;
	transition: border-color .25s, transform .25s, box-shadow .25s; position: relative; background: var(--gray-50);
}
.lgc-slot-option:hover { transform: translateY(-3px); box-shadow: var(--shadow-sm); }
.lgc-slot-option.selected { border-color: var(--pink); background: var(--pink-light); }
.lgc-slot-option input { position: absolute; opacity: 0; }
.lgc-slot-option strong { display: block; font-size: .92rem; color: var(--navy); }
.lgc-slot-option small { color: var(--gray-400); font-size: .76rem; }
.lgc-slot-badge { display: inline-flex; align-items: center; gap: 5px; font-size: .7rem; font-weight: 700; padding: 3px 10px; border-radius: 999px; margin-top: 8px; }
.lgc-badge-available { background: #e2f7ec; color: var(--green); }
.lgc-badge-limited { background: #fff2dc; color: #c9861a; }
.lgc-badge-full, .lgc-badge-closed { background: #fbe4e8; color: #d0455f; }
.lgc-form-note { font-size: .78rem; color: var(--gray-400); margin-top: -6px; margin-bottom: 14px; }
.lgc-form-msg { padding: 12px 16px; border-radius: var(--radius-sm); font-size: .86rem; margin-top: 14px; display: none; }
.lgc-form-msg.success { display: block; background: #e2f7ec; color: #216b48; }
.lgc-form-msg.error { display: block; background: #fbe4e8; color: #a2233a; }
.lgc-whatsapp-link { display: inline-flex; align-items: center; gap: 8px; margin-top: 12px; color: var(--green); font-weight: 700; font-size: .88rem; }

/* -------------------- Info side cards (timings/contact) -------------------- */
.lgc-side-card { background: #fff; border-radius: var(--radius-md); box-shadow: var(--shadow-sm); padding: 26px; margin-bottom: 22px; }
.lgc-side-card h4 { margin: 0 0 16px; color: var(--navy); display: flex; align-items: center; gap: 10px; }
.lgc-side-card .lgc-circle { width: 34px; height: 34px; }
.lgc-side-row { display: flex; justify-content: space-between; padding: 8px 0; font-size: .88rem; border-bottom: 1px dashed #eee; }
.lgc-side-row:last-child { border: none; }
.lgc-side-card.lgc-side-green { background: #eefaf3; }
.lgc-side-contact-row { display: flex; align-items: center; gap: 12px; padding: 8px 0; font-size: .88rem; }

/* -------------------- Footer -------------------- */
.lgc-footer { background: #f4effa; padding: 60px 0 0; margin-top: 60px; }
.lgc-footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.1fr; gap: 40px; padding-bottom: 40px; }
.lgc-footer-col h4 { color: var(--navy); margin: 0 0 16px; font-size: .96rem; }
.lgc-footer-col ul { display: flex; flex-direction: column; gap: 10px; }
.lgc-footer-col a { font-size: .86rem; color: var(--gray-700); transition: color .2s, transform .2s; display: inline-block; }
.lgc-footer-col a:hover { color: var(--pink); transform: translateX(3px); }
.lgc-footer-brand p { font-size: .86rem; color: var(--gray-700); line-height: 1.6; margin: 14px 0 18px; }
.lgc-social-row { display: flex; gap: 10px; }
.lgc-social-circle { width: 38px !important; height: 38px !important; aspect-ratio: 1 / 1; box-sizing: border-box !important; border-radius: 50% !important; padding: 0; background: var(--navy); transition: transform .25s, background .25s; }
.lgc-social-circle:hover { background: var(--pink); transform: translateY(-4px) rotate(8deg); }
.lgc-footer-timings li { display: flex; justify-content: space-between; font-size: .84rem; padding: 5px 0; }
.lgc-emergency { color: var(--pink-dark); font-weight: 600; padding-top: 10px !important; }
.lgc-footer-contact li { font-size: .84rem; color: var(--gray-700); margin-bottom: 8px; }
.lgc-footer-bottom { border-top: 1px solid #e6e0f2; padding: 18px 0; text-align: center; }
.lgc-footer-bottom p { font-size: .78rem; color: var(--gray-400); margin: 0; }

/* -------------------- Gallery -------------------- */
.lgc-gallery-filters { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 26px; }
.lgc-gallery-filter.is-active { background: var(--pink); border-color: var(--pink); color: #fff; }
.lgc-gallery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.lgc-gallery-item { border-radius: var(--radius-md); overflow: hidden; box-shadow: var(--shadow-sm); position: relative; transition: transform .35s var(--ease), box-shadow .35s, opacity .25s, filter .25s; aspect-ratio: 4/3; }
.lgc-gallery-item:hover { transform: scale(1.03) translateY(-6px); box-shadow: var(--shadow-lg); z-index: 2; }
.lgc-gallery-item.lgc-gallery-hidden { display: none; }
.lgc-gallery-item svg { width: 100%; height: 100%; object-fit: cover; }
.lgc-gallery-open {
	display: block; width: 100%; height: 100%; padding: 0; margin: 0;
	border: none; background: none; cursor: pointer; box-sizing: border-box !important;
}
.lgc-gallery-open img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lgc-gallery-caption { position: absolute; inset: auto 0 0 0; background: linear-gradient(to top, rgba(30,20,50,.75), transparent); color: #fff; padding: 14px; font-size: .82rem; font-weight: 600; opacity: 0; transform: translateY(10px); transition: opacity .3s, transform .3s; pointer-events: none; }
.lgc-gallery-item:hover .lgc-gallery-caption { opacity: 1; transform: translateY(0); }
.lgc-gallery-admin-note { margin-top: 20px; padding: 14px 18px; background: var(--pink-light); color: var(--pink-dark); border-radius: var(--radius-sm); font-size: .86rem; font-weight: 600; }

/* Lightbox */
.lgc-lightbox {
	position: fixed; inset: 0; z-index: 950; background: rgba(20, 14, 28, .92);
	display: flex; align-items: center; justify-content: center; padding: 40px;
}
.lgc-lightbox[hidden] { display: none !important; }
.lgc-lightbox img { max-width: 90vw; max-height: 78vh; border-radius: var(--radius-md); box-shadow: var(--shadow-lg); }
.lgc-lightbox-caption { position: absolute; bottom: 24px; left: 0; right: 0; text-align: center; color: #fff; font-size: .9rem; font-weight: 600; }
.lgc-lightbox-close {
	position: absolute; top: 20px; right: 24px;
	width: 44px !important; height: 44px !important; aspect-ratio: 1 / 1;
	box-sizing: border-box !important; border-radius: 50% !important; border: none !important; padding: 0 !important;
	background: rgba(255,255,255,.12); color: #fff; font-size: 1.6rem; line-height: 1;
	display: flex; align-items: center; justify-content: center; cursor: pointer;
}
.lgc-lightbox-close:hover { background: var(--pink); }
.lgc-lightbox-nav {
	position: absolute; top: 50%; transform: translateY(-50%);
	width: 50px !important; height: 50px !important; aspect-ratio: 1 / 1;
	box-sizing: border-box !important; border-radius: 50% !important; border: none !important; padding: 0 !important;
	background: rgba(255,255,255,.12); color: #fff; font-size: 1.8rem; line-height: 1;
	display: flex; align-items: center; justify-content: center; cursor: pointer;
}
.lgc-lightbox-nav:hover { background: var(--pink); }
.lgc-lightbox-prev { left: 20px; }
.lgc-lightbox-next { right: 20px; }
@media (max-width: 600px) {
	.lgc-lightbox-nav { width: 40px !important; height: 40px !important; font-size: 1.4rem; }
	.lgc-lightbox-prev { left: 8px; }
	.lgc-lightbox-next { right: 8px; }
}

/* -------------------- Page hero (inner pages) — kept short by design -------------------- */
.lgc-page-hero { padding: 30px 0 26px; text-align: center; position: relative; overflow: hidden; }
.lgc-page-hero h1 { font-size: clamp(1.5rem, 2.6vw, 2rem); color: var(--navy); font-weight: 800; margin: 8px 0; }
.lgc-page-hero .lgc-lead { margin: 0 auto; font-size: .92rem; }
.lgc-breadcrumb { font-size: .8rem; color: var(--gray-400); }
.lgc-breadcrumb a { color: var(--pink); font-weight: 600; }

/* -------------------- Treatment detail blocks -------------------- */
.lgc-treatment-block { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; align-items: center; padding: 60px 0; border-bottom: 1px solid #eee6f5; }
.lgc-treatment-block:last-child { border-bottom: none; }
.lgc-treatment-block.lgc-reverse .lgc-treatment-media { order: 2; }
.lgc-treatment-media { border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-md); }
.lgc-treatment-media svg { width: 100%; height: auto; }
.lgc-treatment-copy ul { margin-top: 18px; display: flex; flex-direction: column; gap: 10px; }
.lgc-treatment-copy li { display: flex; gap: 10px; font-size: .9rem; align-items: flex-start; }
.lgc-treatment-copy li .lgc-check { flex-shrink: 0; margin-top: 2px; }

/* -------------------- Team / About -------------------- */
.lgc-team-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.lgc-team-card { background: #fff; border-radius: var(--radius-md); box-shadow: var(--shadow-sm); padding: 24px; text-align: center; transition: transform .3s var(--ease), box-shadow .3s; }
.lgc-team-card:hover { transform: translateY(-8px); box-shadow: var(--shadow-lg); }
.lgc-team-photo { width: 110px; height: 110px; margin: 0 auto 16px; box-shadow: var(--shadow-sm); }
.lgc-team-card h4 { margin: 0 0 4px; color: var(--navy); }
.lgc-team-card span { font-size: .78rem; color: var(--pink); font-weight: 600; }

.lgc-timeline { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-top: 40px; }
.lgc-timeline-item { text-align: center; position: relative; }
.lgc-timeline-dot { width: 46px; height: 46px; margin: 0 auto 14px; background: var(--pink); color: #fff; font-weight: 800; }
.lgc-timeline-item h5 { margin: 0 0 6px; color: var(--navy); }
.lgc-timeline-item p { font-size: .82rem; color: var(--gray-700); }

/* -------------------- Scroll reveal -------------------- */
.lgc-reveal { opacity: 0; transform: translateY(36px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
.lgc-reveal.is-visible { opacity: 1; transform: translateY(0); }
.lgc-reveal-scale { opacity: 0; transform: scale(.9); transition: opacity .6s var(--ease), transform .6s var(--ease); }
.lgc-reveal-scale.is-visible { opacity: 1; transform: scale(1); }
.lgc-reveal-left { opacity: 0; transform: translateX(-40px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
.lgc-reveal-left.is-visible { opacity: 1; transform: translateX(0); }
.lgc-reveal-right { opacity: 0; transform: translateX(40px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
.lgc-reveal-right.is-visible { opacity: 1; transform: translateX(0); }
.lgc-stagger > * { transition-delay: calc(var(--i, 0) * 90ms); }

/* -------------------- Back to top -------------------- */
.lgc-back-to-top {
	position: fixed; bottom: 26px; left: 26px; z-index: 850;
	width: 50px !important; height: 50px !important; aspect-ratio: 1 / 1;
	min-width: 0; max-width: 50px; box-sizing: border-box !important;
	border-radius: 50% !important; border: none !important; padding: 0 !important;
	-webkit-appearance: none; appearance: none; margin: 0;
	background: var(--navy); color: #fff;
	display: flex; align-items: center; justify-content: center;
	box-shadow: var(--shadow-md);
	opacity: 0; visibility: hidden; transform: translateY(12px);
	transition: opacity .3s var(--ease), transform .3s var(--ease), background .25s, visibility .3s;
}
.lgc-back-to-top.is-visible { opacity: 1; visibility: visible; transform: translateY(0); }
.lgc-back-to-top:hover { background: var(--pink); transform: translateY(-4px); }
.lgc-back-to-top svg { display: block; }
.lgc-back-to-top svg path { stroke: #fff !important; }

/* -------------------- Chatbot widget -------------------- */
.lgc-chatbot { position: fixed; bottom: 26px; right: 26px; z-index: 900; }
.lgc-chatbot-left { right: auto; left: 26px; }
.lgc-chat-toggle {
	width: 64px !important; height: 64px !important; aspect-ratio: 1 / 1;
	min-width: 0; max-width: 64px; box-sizing: border-box !important;
	border-radius: 50% !important; border: none !important; padding: 0 !important;
	-webkit-appearance: none; appearance: none; margin: 0;
	background: linear-gradient(135deg, var(--pink), var(--pink-dark));
	box-shadow: 0 10px 28px rgba(236,74,122,.45);
	display: flex; align-items: center; justify-content: center;
	position: relative; transition: transform .3s var(--ease);
}
.lgc-chat-toggle:hover { transform: scale(1.08) rotate(-4deg); }
.lgc-chat-toggle-close { display: none; }
.lgc-chatbot.lgc-chat-open .lgc-chat-toggle-tooth { display: none; }
.lgc-chatbot.lgc-chat-open .lgc-chat-toggle-close { display: block; }
.lgc-chat-pulse {
	position: absolute; inset: -6px; border-radius: 50%; border: 2px solid var(--pink);
	animation: lgc-pulse 2.4s ease-out infinite;
}
@keyframes lgc-pulse { 0% { transform: scale(.9); opacity: .8; } 100% { transform: scale(1.35); opacity: 0; } }

.lgc-chat-window {
	position: absolute; bottom: 80px; right: 0; width: 360px; max-width: calc(100vw - 40px);
	background: #fff; border-radius: var(--radius-lg); box-shadow: var(--shadow-lg);
	display: flex; flex-direction: column; overflow: hidden; height: 480px; max-height: 70vh;
	animation: lgc-chat-pop .3s var(--ease);
}
/* Some parent themes' global CSS can out-specificity a plain [hidden]
   attribute — force it explicitly so the close/minimize button always works. */
.lgc-chat-window[hidden] { display: none !important; }
.lgc-chatbot-left .lgc-chat-window { right: auto; left: 0; }
@keyframes lgc-chat-pop { from { opacity: 0; transform: translateY(16px) scale(.96); } to { opacity: 1; transform: translateY(0) scale(1); } }

.lgc-chat-header { display: flex; align-items: center; gap: 12px; padding: 16px 18px; background: var(--navy); color: #fff; }
.lgc-chat-avatar { width: 40px; height: 40px; background: #fff; }
.lgc-chat-header strong { display: block; font-size: .92rem; }
.lgc-chat-header small { color: #cdd8ea; font-size: .72rem; }
.lgc-chat-close { margin-left: auto; background: none; border: none; color: #fff; font-size: 1.4rem; line-height: 1; }

.lgc-chat-messages { flex: 1; overflow-y: auto; padding: 18px; display: flex; flex-direction: column; gap: 12px; background: var(--gray-50); }
.lgc-msg { display: flex; }
.lgc-msg-bot { justify-content: flex-start; }
.lgc-msg-user { justify-content: flex-end; }
.lgc-msg-bubble { max-width: 80%; padding: 10px 14px; border-radius: 16px; font-size: .86rem; line-height: 1.5; }
.lgc-msg-bot .lgc-msg-bubble { background: #fff; color: var(--text); border-bottom-left-radius: 4px; box-shadow: var(--shadow-sm); }
.lgc-msg-user .lgc-msg-bubble { background: var(--pink); color: #fff; border-bottom-right-radius: 4px; }
.lgc-msg-typing .lgc-msg-bubble { display: flex; gap: 4px; }
.lgc-msg-typing span { width: 6px; height: 6px; border-radius: 50%; background: var(--gray-400); animation: lgc-typing 1.2s infinite; }
.lgc-msg-typing span:nth-child(2) { animation-delay: .2s; } .lgc-msg-typing span:nth-child(3) { animation-delay: .4s; }
@keyframes lgc-typing { 0%, 60%, 100% { transform: translateY(0); opacity: .5; } 30% { transform: translateY(-4px); opacity: 1; } }

.lgc-chat-quick { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 16px 12px; }
.lgc-chip { border: 1.4px solid #e7e4f0; background: #fff; border-radius: 999px; padding: 7px 14px; font-size: .76rem; font-weight: 600; color: var(--navy); transition: all .2s; }
.lgc-chip:hover { border-color: var(--pink); color: var(--pink); transform: translateY(-2px); }

.lgc-chat-input-row { display: flex; gap: 10px; padding: 14px; border-top: 1px solid #eee; }
.lgc-chat-input-row input { flex: 1; border: 1.6px solid #e7e4f0; border-radius: 999px; padding: 11px 16px; font-size: .86rem; font-family: inherit; }
.lgc-chat-input-row input:focus { outline: none; border-color: var(--pink); }
.lgc-chat-input-row button {
	width: 42px !important; height: 42px !important; aspect-ratio: 1 / 1;
	min-width: 0; max-width: 42px; box-sizing: border-box !important;
	border-radius: 50% !important; border: none !important; padding: 0 !important;
	-webkit-appearance: none; appearance: none; margin: 0;
	background: var(--pink); color: #fff;
	display: flex; align-items: center; justify-content: center; flex-shrink: 0;
	transition: transform .2s;
}
.lgc-chat-input-row button:hover { transform: scale(1.08); }
.lgc-chat-input-row button svg { display: block; flex-shrink: 0; }
.lgc-chat-input-row button svg path { fill: #fff !important; }

/* -------------------- Responsive -------------------- */
@media (max-width: 1080px) {
	.lgc-services-grid { grid-template-columns: repeat(2, 1fr); }
	.lgc-why-grid { grid-template-columns: repeat(3, 1fr); }
	.lgc-kids-band { grid-template-columns: 1fr; }
	.lgc-doctor { grid-template-columns: 1fr; text-align: center; }
	.lgc-doctor-tags { justify-content: center; }
	.lgc-footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 900px) {
	.lgc-hero-grid { grid-template-columns: 1fr; }
	.lgc-hero-art { order: -1; max-width: 460px; margin: 0 auto; }
	.lgc-nav {
		position: fixed; inset: 0; z-index: 600; background: #fff;
		padding: 96px 28px 40px; transform: translateX(100%);
		transition: transform .35s var(--ease); overflow-y: auto;
		-webkit-overflow-scrolling: touch;
	}
	.lgc-nav.open { transform: translateX(0); }
	.lgc-nav ul { flex-direction: column; gap: 4px; flex-wrap: wrap; white-space: normal; }
	.lgc-nav a { display: block; padding: 16px 4px; font-size: 1.05rem; border-bottom: 1px solid #f2f0f5; }
	.lgc-menu-toggle { display: flex; position: relative; z-index: 610; }
	body.lgc-nav-open { overflow: hidden; }
	.lgc-treatment-block, .lgc-treatment-block.lgc-reverse { grid-template-columns: 1fr; }
	.lgc-treatment-block.lgc-reverse .lgc-treatment-media { order: 0; }
	.lgc-form-grid, .lgc-slot-group { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
	.lgc-services-grid, .lgc-team-grid { grid-template-columns: 1fr; }
	.lgc-why-grid { grid-template-columns: repeat(2, 1fr); }
	.lgc-stats-grid, .lgc-timeline, .lgc-gallery-grid { grid-template-columns: 1fr 1fr; }
	.lgc-footer-grid { grid-template-columns: 1fr; }
	.lgc-hero-badges { flex-wrap: wrap; }
	.lgc-chat-window { width: calc(100vw - 32px); right: -10px; }
	.lgc-section { padding: 60px 0; }
	.lgc-booking { padding: 26px; }
}
@media (max-width: 480px) {
	.lgc-stats-grid, .lgc-gallery-grid { grid-template-columns: 1fr; }
	.lgc-hero-floating-card { position: static; margin-top: 12px; animation: none; }
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
}
