/*
 * LSRI shared components (call bar, clinics block, trust strip, CTAs, breadcrumbs…).
 * The compiled Tailwind file (assets/index-*.css) was built from the old React app and is
 * missing many utilities, so shared components are styled here with the theme's brand tokens.
 */

/* BEGIN generated utilities ----------------------------------------------------------
 * Tailwind classes the PHP templates use but the compiled React-era CSS (assets/index-*.css)
 * never contained (w-max, gap-10, h-3.5, order-*, lg:col-span-8, …). Generated with Tailwind 3.4
 * using the same palette/fonts as the compiled file; every rule present in both was checked to be
 * identical. Responsive/state variants are repeated so they still follow the base utilities.
 * Kept in this file (not a separate one) to avoid an extra render-blocking request.
 * Do not edit by hand — regenerate (docs/batch3/tools/README.txt) and replace this block. */
.-bottom-8{bottom:-2rem}.-left-8{left:-2rem}.-left-\[9px\]{left:-9px}.-right-24{right:-6rem}.-top-24{top:-6rem}.left-2{left:0.5rem}.left-\[15\%\]{left:15%}.right-\[15\%\]{right:15%}.top-1{top:0.25rem}.top-14{top:3.5rem}.top-24{top:6rem}.top-\[60px\]{top:60px}.-z-0{z-index:0}.order-1{order:1}.order-2{order:2}.m-0{margin:0px}.mx-2{margin-left:0.5rem;margin-right:0.5rem}.my-10{margin-top:2.5rem;margin-bottom:2.5rem}.my-4{margin-top:1rem;margin-bottom:1rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.-mt-1{margin-top:-0.25rem}.mb-0{margin-bottom:0px}.mr-1{margin-right:0.25rem}.mt-0{margin-top:0px}.mt-3{margin-top:0.75rem}.h-20{height:5rem}.h-3{height:0.75rem}.h-3\.5{height:0.875rem}.h-80{height:20rem}.h-\[14px\]{height:14px}.h-\[18px\]{height:18px}.h-\[22px\]{height:22px}.h-\[300px\]{height:300px}.h-\[400px\]{height:400px}.h-auto{height:auto}.max-h-12{max-height:3rem}.min-h-\[50vh\]{min-height:50vh}.min-h-\[550px\]{min-height:550px}.min-h-\[80px\]{min-height:80px}.w-20{width:5rem}.w-3{width:0.75rem}.w-3\.5{width:0.875rem}.w-\[14px\]{width:14px}.w-\[18px\]{width:18px}.w-\[22px\]{width:22px}.w-\[30rem\]{width:30rem}.w-max{width:-moz-max-content;width:max-content}.max-w-\[200px\]{max-width:200px}.max-w-\[220px\]{max-width:220px}.max-w-\[280px\]{max-width:280px}.max-w-\[320px\]{max-width:320px}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.-translate-x-8{--tw-translate-x: -2rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-4{--tw-translate-y: -1rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-8{--tw-translate-x: 2rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-0{--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-2{--tw-translate-y: 0.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-8{--tw-translate-y: 2rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-45{--tw-rotate: 45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-100{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-95{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-default{cursor:default}.snap-x{scroll-snap-type:x var(--tw-scroll-snap-strictness)}.snap-start{scroll-snap-align:start}.list-none{list-style-type:none}.items-end{align-items:flex-end}.items-stretch{align-items:stretch}.gap-0\.5{gap:0.125rem}.gap-10{gap:2.5rem}.gap-14{gap:3.5rem}.gap-x-1{-moz-column-gap:0.25rem;column-gap:0.25rem}.gap-x-12{-moz-column-gap:3rem;column-gap:3rem}.gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.gap-y-2{row-gap:0.5rem}.gap-y-4{row-gap:1rem}.overflow-x-hidden{overflow-x:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded-\[2\.5rem\]{border-radius:2.5rem}.rounded-md{border-radius:0.375rem}.rounded-r-xl{border-top-right-radius:0.75rem;border-bottom-right-radius:0.75rem}.border-4{border-width:4px}.border-b-\[8px\]{border-bottom-width:8px}.border-l{border-left-width:1px}.border-amber-200{--tw-border-opacity: 1;border-color:rgb(253 230 138/var(--tw-border-opacity, 1))}.border-emerald-100{--tw-border-opacity: 1;border-color:rgb(209 250 229/var(--tw-border-opacity, 1))}.border-emerald-200{--tw-border-opacity: 1;border-color:rgb(167 243 208/var(--tw-border-opacity, 1))}.border-emerald-500\/30{border-color:rgb(16 185 129/0.3)}.border-primary-50{--tw-border-opacity: 1;border-color:rgb(240 247 250/var(--tw-border-opacity, 1))}.border-primary-600{--tw-border-opacity: 1;border-color:rgb(43 109 140/var(--tw-border-opacity, 1))}.border-primary-600\/20{border-color:rgb(43 109 140/0.2)}.border-red-600{--tw-border-opacity: 1;border-color:rgb(220 38 38/var(--tw-border-opacity, 1))}.border-slate-50{--tw-border-opacity: 1;border-color:rgb(248 250 252/var(--tw-border-opacity, 1))}.border-slate-700{--tw-border-opacity: 1;border-color:rgb(51 65 85/var(--tw-border-opacity, 1))}.border-slate-800{--tw-border-opacity: 1;border-color:rgb(30 41 59/var(--tw-border-opacity, 1))}.border-teal-400{--tw-border-opacity: 1;border-color:rgb(45 212 191/var(--tw-border-opacity, 1))}.bg-amber-50{--tw-bg-opacity: 1;background-color:rgb(255 251 235/var(--tw-bg-opacity, 1))}.bg-emerald-100{--tw-bg-opacity: 1;background-color:rgb(209 250 229/var(--tw-bg-opacity, 1))}.bg-emerald-500\/20{background-color:rgb(16 185 129/0.2)}.bg-emerald-700{--tw-bg-opacity: 1;background-color:rgb(4 120 87/var(--tw-bg-opacity, 1))}.bg-indigo-50{--tw-bg-opacity: 1;background-color:rgb(238 242 255/var(--tw-bg-opacity, 1))}.bg-neutral-800{--tw-bg-opacity: 1;background-color:rgb(38 38 38/var(--tw-bg-opacity, 1))}.bg-primary-50\/30{background-color:rgb(240 247 250/0.3)}.bg-primary-500{--tw-bg-opacity: 1;background-color:rgb(54 135 167/var(--tw-bg-opacity, 1))}.bg-primary-500\/10{background-color:rgb(54 135 167/0.1)}.bg-primary-500\/20{background-color:rgb(54 135 167/0.2)}.bg-primary-500\/30{background-color:rgb(54 135 167/0.3)}.bg-primary-500\/5{background-color:rgb(54 135 167/0.05)}.bg-primary-500\/80{background-color:rgb(54 135 167/0.8)}.bg-primary-600\/10{background-color:rgb(43 109 140/0.1)}.bg-primary-600\/5{background-color:rgb(43 109 140/0.05)}.bg-red-500\/20{background-color:rgb(239 68 68/0.2)}.bg-red-600{--tw-bg-opacity: 1;background-color:rgb(220 38 38/var(--tw-bg-opacity, 1))}.bg-slate-50\/50{background-color:rgb(248 250 252/0.5)}.bg-slate-800{--tw-bg-opacity: 1;background-color:rgb(30 41 59/var(--tw-bg-opacity, 1))}.bg-white\/5{background-color:rgb(255 255 255/0.05)}.from-emerald-50{--tw-gradient-from: #ecfdf5 var(--tw-gradient-from-position);--tw-gradient-to: rgb(236 253 245 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)
}.from-primary-500\/10{--tw-gradient-from: rgb(54 135 167 / 0.1) var(--tw-gradient-from-position);--tw-gradient-to: rgb(54 135 167 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)
}.from-primary-500\/20{--tw-gradient-from: rgb(54 135 167 / 0.2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(54 135 167 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)
}.from-primary-500\/5{--tw-gradient-from: rgb(54 135 167 / 0.05) var(--tw-gradient-from-position);--tw-gradient-to: rgb(54 135 167 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)
}.from-primary-600\/10{--tw-gradient-from: rgb(43 109 140 / 0.1) var(--tw-gradient-from-position);--tw-gradient-to: rgb(43 109 140 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)
}.from-primary-600\/5{--tw-gradient-from: rgb(43 109 140 / 0.05) var(--tw-gradient-from-position);--tw-gradient-to: rgb(43 109 140 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)
}.from-slate-900\/60{--tw-gradient-from: rgb(15 23 42 / 0.6) var(--tw-gradient-from-position);--tw-gradient-to: rgb(15 23 42 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)
}.via-primary-900{--tw-gradient-to: rgb(27 59 85 / 0)  var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #1b3b55 var(--tw-gradient-via-position), var(--tw-gradient-to)
}.via-slate-900\/90{--tw-gradient-to: rgb(15 23 42 / 0)  var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(15 23 42 / 0.9) var(--tw-gradient-via-position), var(--tw-gradient-to)
}.to-primary-900\/40{--tw-gradient-to: rgb(27 59 85 / 0.4) var(--tw-gradient-to-position)
}.to-teal-50{--tw-gradient-to: #f0fdfa var(--tw-gradient-to-position)
}.to-teal-500\/5{--tw-gradient-to: rgb(20 184 166 / 0.05) var(--tw-gradient-to-position)
}.fill-\[\#00D3B9\]\/10{fill:rgb(0 211 185/0.1)}.fill-\[\#1080E9\]\/10{fill:rgb(16 128 233/0.1)}.object-left{-o-object-position:left;object-position:left}.p-1\.5{padding:0.375rem}.px-1{padding-left:0.25rem;padding-right:0.25rem}.px-1\.5{padding-left:0.375rem;padding-right:0.375rem}.px-7{padding-left:1.75rem;padding-right:1.75rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.pb-2{padding-bottom:0.5rem}.pb-24{padding-bottom:6rem}.pb-32{padding-bottom:8rem}.pb-4{padding-bottom:1rem}.pb-6{padding-bottom:1.5rem}.pl-0{padding-left:0px}.pl-5{padding-left:1.25rem}.pl-8{padding-left:2rem}.pt-28{padding-top:7rem}.pt-3{padding-top:0.75rem}.font-heading{font-family:Plus Jakarta Sans,Inter,system-ui,sans-serif}.text-\[15px\]{font-size:15px}.text-\[9px\]{font-size:9px}.font-black{font-weight:900}.font-extrabold{font-weight:800}.font-light{font-weight:300}.leading-\[1\.1\]{line-height:1.1}.tracking-tighter{letter-spacing:-0.05em}.text-\[\#007954\]{--tw-text-opacity: 1;color:rgb(0 121 84/var(--tw-text-opacity, 1))}.text-\[\#0079C2\]{--tw-text-opacity: 1;color:rgb(0 121 194/var(--tw-text-opacity, 1))}.text-\[\#00D3B9\]{--tw-text-opacity: 1;color:rgb(0 211 185/var(--tw-text-opacity, 1))}.text-\[\#1080E9\]{--tw-text-opacity: 1;color:rgb(16 128 233/var(--tw-text-opacity, 1))}.text-\[\#8cc63f\]{--tw-text-opacity: 1;color:rgb(140 198 63/var(--tw-text-opacity, 1))}.text-\[\#D65F00\]{--tw-text-opacity: 1;color:rgb(214 95 0/var(--tw-text-opacity, 1))}.text-emerald-300{--tw-text-opacity: 1;color:rgb(110 231 183/var(--tw-text-opacity, 1))}.text-emerald-400{--tw-text-opacity: 1;color:rgb(52 211 153/var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87/var(--tw-text-opacity, 1))}.text-emerald-800{--tw-text-opacity: 1;color:rgb(6 95 70/var(--tw-text-opacity, 1))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94/var(--tw-text-opacity, 1))}.text-indigo-600{--tw-text-opacity: 1;color:rgb(79 70 229/var(--tw-text-opacity, 1))}.text-primary-50{--tw-text-opacity: 1;color:rgb(240 247 250/var(--tw-text-opacity, 1))}.text-primary-500{--tw-text-opacity: 1;color:rgb(54 135 167/var(--tw-text-opacity, 1))}.text-primary-600\/20{color:rgb(43 109 140/0.2)}.text-primary-600\/80{color:rgb(43 109 140/0.8)}.text-primary-800{--tw-text-opacity: 1;color:rgb(26 69 101/var(--tw-text-opacity, 1))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113/var(--tw-text-opacity, 1))}.text-teal-200{--tw-text-opacity: 1;color:rgb(153 246 228/var(--tw-text-opacity, 1))}.text-white\/50{color:rgb(255 255 255/0.5)}.text-white\/85{color:rgb(255 255 255/0.85)}.underline-offset-4{text-underline-offset:4px}.opacity-100{opacity:1}.opacity-20{opacity:0.2}.opacity-40{opacity:0.4}.opacity-50{opacity:0.5}.opacity-60{opacity:0.6}.opacity-80{opacity:0.8}.opacity-90{opacity:0.9}.opacity-\[0\.05\]{opacity:0.05}.opacity-\[0\.06\]{opacity:0.06}.mix-blend-multiply{mix-blend-mode:multiply}.mix-blend-overlay{mix-blend-mode:overlay}.shadow-inner{--tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / 0.05);--tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-emerald-900\/40{--tw-shadow-color: rgb(6 78 59 / 0.4);--tw-shadow: var(--tw-shadow-colored)
}.ring-primary-400{--tw-ring-opacity: 1;--tw-ring-color: rgb(82 163 193 / var(--tw-ring-opacity, 1))
}.drop-shadow-sm{--tw-drop-shadow: drop-shadow(0 1px 1px rgb(0 0 0 / 0.05));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.delay-200{transition-delay:200ms}.duration-100{transition-duration:100ms}.duration-150{transition-duration:150ms}.duration-700{transition-duration:700ms}.ease-in{transition-timing-function:cubic-bezier(0.4,0,1,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,0.2,1)}.before\:absolute::before{content:var(--tw-content);position:absolute}.before\:left-\[19px\]::before{content:var(--tw-content);left:19px}.before\:top-2::before{content:var(--tw-content);top:0.5rem}.before\:h-\[85\%\]::before{content:var(--tw-content);height:85%}.before\:w-0\.5::before{content:var(--tw-content);width:0.125rem}.before\:bg-slate-200::before{content:var(--tw-content);--tw-bg-opacity: 1;background-color:rgb(226 232 240/var(--tw-bg-opacity, 1))}.last\:border-0:last-child{border-width:0px}.hover\:-translate-y-0\.5:hover{--tw-translate-y: -0.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:-translate-y-1:hover{--tw-translate-y: -0.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:-translate-y-2:hover{--tw-translate-y: -0.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-105:hover{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-110:hover{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:gap-3:hover{gap:0.75rem}.hover\:border-\[\#0079C2\]:hover{--tw-border-opacity: 1;border-color:rgb(0 121 194/var(--tw-border-opacity, 1))}.hover\:border-\[\#00D3B9\]:hover{--tw-border-opacity: 1;border-color:rgb(0 211 185/var(--tw-border-opacity, 1))}.hover\:border-\[\#1080E9\]:hover{--tw-border-opacity: 1;border-color:rgb(16 128 233/var(--tw-border-opacity, 1))}.hover\:border-\[\#8cc63f\]:hover{--tw-border-opacity: 1;border-color:rgb(140 198 63/var(--tw-border-opacity, 1))}.hover\:border-amber-300:hover{--tw-border-opacity: 1;border-color:rgb(252 211 77/var(--tw-border-opacity, 1))}.hover\:border-blue-300:hover{--tw-border-opacity: 1;border-color:rgb(147 197 253/var(--tw-border-opacity, 1))}.hover\:border-blue-500:hover{--tw-border-opacity: 1;border-color:rgb(59 130 246/var(--tw-border-opacity, 1))}.hover\:border-emerald-500:hover{--tw-border-opacity: 1;border-color:rgb(16 185 129/var(--tw-border-opacity, 1))}.hover\:border-indigo-500:hover{--tw-border-opacity: 1;border-color:rgb(99 102 241/var(--tw-border-opacity, 1))}.hover\:border-primary:hover{--tw-border-opacity: 1;border-color:rgb(26 82 118/var(--tw-border-opacity, 1))}.hover\:border-primary-100:hover{--tw-border-opacity: 1;border-color:rgb(225 239 245/var(--tw-border-opacity, 1))}.hover\:border-primary-200:hover{--tw-border-opacity: 1;border-color:rgb(191 223 233/var(--tw-border-opacity, 1))}.hover\:border-primary-300:hover{--tw-border-opacity: 1;border-color:rgb(140 197 216/var(--tw-border-opacity, 1))}.hover\:border-primary-500:hover{--tw-border-opacity: 1;border-color:rgb(54 135 167/var(--tw-border-opacity, 1))}.hover\:border-primary-500\/30:hover{border-color:rgb(54 135 167/0.3)}.hover\:border-primary-600:hover{--tw-border-opacity: 1;border-color:rgb(43 109 140/var(--tw-border-opacity, 1))}.hover\:border-primary\/30:hover{border-color:rgb(26 82 118/0.3)}.hover\:border-primary\/50:hover{border-color:rgb(26 82 118/0.5)}.hover\:border-slate-300:hover{--tw-border-opacity: 1;border-color:rgb(203 213 225/var(--tw-border-opacity, 1))}.hover\:bg-emerald-50:hover{--tw-bg-opacity: 1;background-color:rgb(236 253 245/var(--tw-bg-opacity, 1))}.hover\:bg-emerald-600:hover{--tw-bg-opacity: 1;background-color:rgb(5 150 105/var(--tw-bg-opacity, 1))}.hover\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246/var(--tw-bg-opacity, 1))}.hover\:bg-gray-200:hover{--tw-bg-opacity: 1;background-color:rgb(229 231 235/var(--tw-bg-opacity, 1))}.hover\:bg-neutral-50:hover{--tw-bg-opacity: 1;background-color:rgb(250 250 250/var(--tw-bg-opacity, 1))}.hover\:bg-primary-50:hover{--tw-bg-opacity: 1;background-color:rgb(240 247 250/var(--tw-bg-opacity, 1))}.hover\:bg-primary-500:hover{--tw-bg-opacity: 1;background-color:rgb(54 135 167/var(--tw-bg-opacity, 1))}.hover\:bg-primary-600:hover{--tw-bg-opacity: 1;background-color:rgb(43 109 140/var(--tw-bg-opacity, 1))}.hover\:bg-primary-600\/5:hover{background-color:rgb(43 109 140/0.05)}.hover\:bg-primary-700:hover{--tw-bg-opacity: 1;background-color:rgb(26 82 118/var(--tw-bg-opacity, 1))}.hover\:bg-primary-800:hover{--tw-bg-opacity: 1;background-color:rgb(26 69 101/var(--tw-bg-opacity, 1))}.hover\:bg-primary-900:hover{--tw-bg-opacity: 1;background-color:rgb(27 59 85/var(--tw-bg-opacity, 1))}.hover\:bg-primary\/5:hover{background-color:rgb(26 82 118/0.05)}.hover\:bg-red-700:hover{--tw-bg-opacity: 1;background-color:rgb(185 28 28/var(--tw-bg-opacity, 1))}.hover\:bg-slate-100:hover{--tw-bg-opacity: 1;background-color:rgb(241 245 249/var(--tw-bg-opacity, 1))}.hover\:bg-slate-200:hover{--tw-bg-opacity: 1;background-color:rgb(226 232 240/var(--tw-bg-opacity, 1))}.hover\:bg-slate-50:hover{--tw-bg-opacity: 1;background-color:rgb(248 250 252/var(--tw-bg-opacity, 1))}.hover\:bg-white:hover{--tw-bg-opacity: 1;background-color:rgb(255 255 255/var(--tw-bg-opacity, 1))}.hover\:bg-white\/10:hover{background-color:rgb(255 255 255/0.1)}.hover\:bg-white\/20:hover{background-color:rgb(255 255 255/0.2)}.hover\:text-blue-700:hover{--tw-text-opacity: 1;color:rgb(29 78 216/var(--tw-text-opacity, 1))}.hover\:text-emerald-700:hover{--tw-text-opacity: 1;color:rgb(4 120 87/var(--tw-text-opacity, 1))}.hover\:text-emerald-800:hover{--tw-text-opacity: 1;color:rgb(6 95 70/var(--tw-text-opacity, 1))}.hover\:text-indigo-700:hover{--tw-text-opacity: 1;color:rgb(67 56 202/var(--tw-text-opacity, 1))}.hover\:text-neutral-300:hover{--tw-text-opacity: 1;color:rgb(212 212 212/var(--tw-text-opacity, 1))}.hover\:text-neutral-900:hover{--tw-text-opacity: 1;color:rgb(23 23 23/var(--tw-text-opacity, 1))}.hover\:text-primary-100:hover{--tw-text-opacity: 1;color:rgb(225 239 245/var(--tw-text-opacity, 1))}.hover\:text-primary-600:hover{--tw-text-opacity: 1;color:rgb(43 109 140/var(--tw-text-opacity, 1))}.hover\:text-primary-700:hover{--tw-text-opacity: 1;color:rgb(26 82 118/var(--tw-text-opacity, 1))}.hover\:text-primary-800:hover{--tw-text-opacity: 1;color:rgb(26 69 101/var(--tw-text-opacity, 1))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255/var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-2xl:hover{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-lg:hover{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-xl:hover{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-primary-600\/25:hover{--tw-shadow-color: rgb(43 109 140 / 0.25);--tw-shadow: var(--tw-shadow-colored)
}.hover\:shadow-primary-700\/20:hover{--tw-shadow-color: rgb(26 82 118 / 0.2);--tw-shadow: var(--tw-shadow-colored)
}.hover\:\[animation-play-state\:paused\]:hover{animation-play-state:paused}.focus\:border-primary:focus{--tw-border-opacity: 1;border-color:rgb(26 82 118/var(--tw-border-opacity, 1))}.focus\:border-transparent:focus{border-color:transparent}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-primary-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(54 135 167 / var(--tw-ring-opacity, 1))
}.focus\:ring-primary\/20:focus{--tw-ring-color: rgb(26 82 118 / 0.2)
}.group[open] .group-open\:rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:w-full{width:100%}.group:hover .group-hover\:translate-x-0\.5{--tw-translate-x: 0.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:translate-x-1{--tw-translate-x: 0.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-105{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-110{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:gap-2{gap:0.5rem}.group:hover .group-hover\:gap-3{gap:0.75rem}.group:hover .group-hover\:border-primary-100{--tw-border-opacity: 1;border-color:rgb(225 239 245/var(--tw-border-opacity, 1))}.group:hover .group-hover\:border-transparent{border-color:transparent}.group:hover .group-hover\:bg-blue-600{--tw-bg-opacity: 1;background-color:rgb(37 99 235/var(--tw-bg-opacity, 1))}.group:hover .group-hover\:bg-emerald-600{--tw-bg-opacity: 1;background-color:rgb(5 150 105/var(--tw-bg-opacity, 1))}.group:hover .group-hover\:bg-indigo-600{--tw-bg-opacity: 1;background-color:rgb(79 70 229/var(--tw-bg-opacity, 1))}.group:hover .group-hover\:bg-primary-100{--tw-bg-opacity: 1;background-color:rgb(225 239 245/var(--tw-bg-opacity, 1))}.group:hover .group-hover\:bg-primary-600{--tw-bg-opacity: 1;background-color:rgb(43 109 140/var(--tw-bg-opacity, 1))}.group:hover .group-hover\:bg-primary\/20{background-color:rgb(26 82 118/0.2)}.group:hover .group-hover\:bg-white\/20{background-color:rgb(255 255 255/0.2)}.group:hover .group-hover\:from-primary-600{--tw-gradient-from: #2b6d8c var(--tw-gradient-from-position);--tw-gradient-to: rgb(43 109 140 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)
}.group:hover .group-hover\:to-primary-700{--tw-gradient-to: #1a5276 var(--tw-gradient-to-position)
}.group:hover .group-hover\:text-\[\#00D3B9\]{--tw-text-opacity: 1;color:rgb(0 211 185/var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-\[\#1080E9\]{--tw-text-opacity: 1;color:rgb(16 128 233/var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-\[\#8cc63f\]{--tw-text-opacity: 1;color:rgb(140 198 63/var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6/var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216/var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-primary{--tw-text-opacity: 1;color:rgb(26 82 118/var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-primary-600{--tw-text-opacity: 1;color:rgb(43 109 140/var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-primary-700{--tw-text-opacity: 1;color:rgb(26 82 118/var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-white{--tw-text-opacity: 1;color:rgb(255 255 255/var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-white\/90{color:rgb(255 255 255/0.9)}.group:hover .group-hover\:opacity-100{opacity:1}.group:hover .group-hover\:opacity-5{opacity:0.05}@media (min-width:640px){.sm\:left-4{left:1rem}.sm\:right-4{right:1rem}.sm\:inline-block{display:inline-block}.sm\:inline{display:inline}.sm\:h-12{height:3rem}.sm\:h-5{height:1.25rem}.sm\:w-12{width:3rem}.sm\:w-5{width:1.25rem}.sm\:w-\[calc\(50\%-10px\)\]{width:calc(50% - 10px)}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:gap-10{gap:2.5rem}.sm\:gap-4{gap:1rem}.sm\:gap-6{gap:1.5rem}.sm\:p-5{padding:1.25rem}.sm\:px-2{padding-left:0.5rem;padding-right:0.5rem}.sm\:px-8{padding-left:2rem;padding-right:2rem}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-sm{font-size:0.875rem;line-height:1.25rem}.sm\:text-xs{font-size:0.75rem;line-height:1rem}}@media (min-width:768px){.md\:block{display:block}.md\:hidden{display:none}.md\:h-10{height:2.5rem}.md\:h-96{height:24rem}.md\:w-96{width:24rem}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:gap-24{gap:6rem}.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-6xl{font-size:3.75rem;line-height:1}}@media (min-width:1024px){.lg\:-bottom-6{bottom:-1.5rem}.lg\:-right-6{right:-1.5rem}.lg\:left-6{left:1.5rem}.lg\:right-6{right:1.5rem}.lg\:top-28{top:7rem}.lg\:top-6{top:1.5rem}.lg\:order-1{order:1}.lg\:order-2{order:2}.lg\:col-span-2{grid-column:span 2/span 2}.lg\:col-span-3{grid-column:span 3/span 3}.lg\:col-span-4{grid-column:span 4/span 4}.lg\:col-span-8{grid-column:span 8/span 8}.lg\:mb-16{margin-bottom:4rem}.lg\:mb-3{margin-bottom:0.75rem}.lg\:mb-5{margin-bottom:1.25rem}.lg\:ml-12{margin-left:3rem}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:grid{display:grid}.lg\:hidden{display:none}.lg\:h-12{height:3rem}.lg\:h-16{height:4rem}.lg\:h-6{height:1.5rem}.lg\:h-\[400px\]{height:400px}.lg\:h-\[480px\]{height:480px}.lg\:min-h-\[650px\]{min-height:650px}.lg\:w-1\/3{width:33.333333%}.lg\:w-12{width:3rem}.lg\:w-16{width:4rem}.lg\:w-2\/3{width:66.666667%}.lg\:w-6{width:1.5rem}.lg\:w-\[calc\(33\.33\%-15px\)\]{width:calc(33.33% - 15px)}.lg\:w-auto{width:auto}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:flex-row-reverse{flex-direction:row-reverse}.lg\:items-center{align-items:center}.lg\:gap-12{gap:3rem}.lg\:gap-16{gap:4rem}.lg\:gap-20{gap:5rem}.lg\:gap-4{gap:1rem}.lg\:gap-5{gap:1.25rem}.lg\:gap-6{gap:1.5rem}.lg\:gap-8{gap:2rem}.lg\:p-10{padding:2.5rem}.lg\:p-12{padding:3rem}.lg\:p-14{padding:3.5rem}.lg\:p-8{padding:2rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:py-10{padding-top:2.5rem;padding-bottom:2.5rem}.lg\:py-12{padding-top:3rem;padding-bottom:3rem}.lg\:py-16{padding-top:4rem;padding-bottom:4rem}.lg\:py-20{padding-top:5rem;padding-bottom:5rem}.lg\:py-24{padding-top:6rem;padding-bottom:6rem}.lg\:py-28{padding-top:7rem;padding-bottom:7rem}.lg\:py-4{padding-top:1rem;padding-bottom:1rem}.lg\:pb-16{padding-bottom:4rem}.lg\:pb-20{padding-bottom:5rem}.lg\:pl-12{padding-left:3rem}.lg\:pt-28{padding-top:7rem}.lg\:pt-32{padding-top:8rem}.lg\:text-left{text-align:left}.lg\:text-right{text-align:right}.lg\:text-2xl{font-size:1.5rem;line-height:2rem}.lg\:text-3xl{font-size:1.875rem;line-height:2.25rem}.lg\:text-4xl{font-size:2.25rem;line-height:2.5rem}.lg\:text-5xl{font-size:3rem;line-height:1}.lg\:text-6xl{font-size:3.75rem;line-height:1}.lg\:text-base{font-size:1rem;line-height:1.5rem}.lg\:text-lg{font-size:1.125rem;line-height:1.75rem}.lg\:text-sm{font-size:0.875rem;line-height:1.25rem}.lg\:text-xl{font-size:1.25rem;line-height:1.75rem}}@media (min-width:1280px){.xl\:w-\[calc\(25\%-20px\)\]{width:calc(25% - 20px)}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:gap-8{gap:2rem}.xl\:text-5xl{font-size:3rem;line-height:1}.xl\:text-\[3\.75rem\]{font-size:3.75rem}}
/* END generated utilities */


:root {
    --lsri-primary-50: #f0f7fa;
    --lsri-primary-100: #e1eff5;
    --lsri-primary-200: #bfdfe9;
    --lsri-primary-600: #2b6d8c;
    --lsri-primary-700: #1a5276;
    --lsri-primary-800: #1a4565;
    --lsri-primary-900: #1b3b55;
    --lsri-slate-900: #0f172a;
    --lsri-neutral-50: #fafafa;
    --lsri-neutral-100: #f5f5f5;
    --lsri-neutral-200: #e5e5e5;
    --lsri-neutral-500: #737373;
    --lsri-neutral-600: #525252;
    --lsri-neutral-700: #404040;
    --lsri-neutral-900: #171717;
    --lsri-star: #f59e0b;
    --lsri-callbar-h: 64px;
    --lsri-font-heading: 'Plus Jakarta Sans', Inter, system-ui, sans-serif;
}

/* ---------- Icons & buttons ---------- */
.lsri-icon {
    width: 1.125em;
    height: 1.125em;
    flex-shrink: 0;
}

.lsri-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    min-height: 44px;
    padding: 0.75rem 1.25rem;
    border-radius: 0.75rem;
    font-weight: 600;
    font-size: 0.9375rem;
    line-height: 1.2;
    text-decoration: none;
    border: 1px solid transparent;
    transition: background-color 0.2s, border-color 0.2s, color 0.2s, box-shadow 0.2s;
    white-space: nowrap;
}

.lsri-btn--primary {
    background: var(--lsri-primary-700);
    color: #fff;
    box-shadow: 0 10px 15px -3px rgba(26, 82, 118, 0.2);
}

.lsri-btn--primary:hover {
    background: var(--lsri-primary-800);
    color: #fff;
}

.lsri-btn--secondary {
    background: #fff;
    color: var(--lsri-neutral-900);
    border-color: var(--lsri-neutral-200);
}

.lsri-btn--secondary:hover {
    border-color: var(--lsri-primary-200);
    background: var(--lsri-primary-50);
}

.lsri-btn--on-dark {
    background: #fff;
    color: var(--lsri-primary-700);
}

.lsri-btn--on-dark:hover {
    background: var(--lsri-primary-50);
}

.lsri-btn--ghost-dark {
    background: transparent;
    color: #fff;
    border-color: rgba(255, 255, 255, 0.4);
}

.lsri-btn--ghost-dark:hover {
    background: rgba(255, 255, 255, 0.1);
    color: #fff;
}

.lsri-btn--sm {
    min-height: 40px;
    padding: 0.5rem 1rem;
    font-size: 0.875rem;
    border-radius: 0.5rem;
}

/* ---------- Header call buttons ---------- */
.lsri-header-mobile-actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.lsri-header-call {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    min-height: 44px;
    padding: 0 0.875rem;
    border-radius: 0.625rem;
    background: var(--lsri-primary-700);
    color: #fff;
    font-weight: 700;
    font-size: 0.875rem;
    text-decoration: none;
}

.lsri-header-call:hover {
    background: var(--lsri-primary-800);
    color: #fff;
}

.lsri-menu-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
}

@media (min-width: 1024px) {
    .lsri-header-mobile-actions {
        display: none;
    }
}

/* ---------- Mobile call bar (below 1024px) ---------- */
.lsri-callbar {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 60;
    display: flex;
    gap: 0.5rem;
    padding: 0.5rem 0.75rem;
    padding-bottom: calc(0.5rem + env(safe-area-inset-bottom, 0px));
    background: rgba(255, 255, 255, 0.97);
    border-top: 1px solid var(--lsri-neutral-200);
    box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.08);
}

.lsri-callbar__btn {
    flex: 1 1 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    min-height: 48px;
    padding: 0 0.5rem;
    border-radius: 0.75rem;
    font-weight: 700;
    font-size: 0.9375rem;
    line-height: 1.1;
    text-decoration: none;
    white-space: nowrap;
}

.lsri-callbar__btn--call {
    background: var(--lsri-primary-700);
    color: #fff;
}

.lsri-callbar__btn--book {
    background: #fff;
    color: var(--lsri-neutral-900);
    border: 1px solid var(--lsri-neutral-200);
}

.lsri-callbar__btn--wa {
    flex: 0 0 48px;
    padding: 0;
    background: #128c4a;
    color: #fff;
}

.lsri-callbar__btn--wa svg {
    width: 24px;
    height: 24px;
}

@media (max-width: 359px) {
    .lsri-callbar__btn {
        font-size: 0.8125rem;
    }
}

@media (max-width: 1023px) {
    body {
        padding-bottom: calc(var(--lsri-callbar-h) + env(safe-area-inset-bottom, 0px));
    }

    /* The floating WhatsApp bubble and trust badges would cover content: WhatsApp moves into the call bar. */
    .whatsapp-float,
    #lsri-trust-badge {
        display: none !important;
    }
}

@media (min-width: 1024px) {
    .lsri-callbar {
        display: none;
    }
}

/* ---------- Section heading helpers ---------- */
.lsri-eyebrow {
    margin: 0 0 0.5rem;
    color: var(--lsri-primary-700);
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.lsri-section-title {
    margin: 0 0 0.75rem;
    color: var(--lsri-slate-900);
    font-family: var(--lsri-font-heading);
    font-size: 1.875rem;
    line-height: 1.2;
    font-weight: 700;
}

.lsri-section-intro {
    margin: 0;
    color: var(--lsri-neutral-600);
    font-size: 1.0625rem;
    line-height: 1.6;
}

@media (min-width: 1024px) {
    .lsri-section-title {
        font-size: 2.25rem;
    }
}

/* ---------- "Available at" line under service H1s ---------- */
.lsri-available {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin: -0.75rem 0 1.5rem;
    font-size: 0.9375rem;
    line-height: 1.5;
    font-weight: 500;
}

.lsri-available .lsri-icon {
    margin-top: 0.15em;
}

.lsri-available--dark {
    color: #e2e8f0;
}

.lsri-available--dark .lsri-icon {
    color: #5eead4;
}

.lsri-available--light {
    color: var(--lsri-neutral-700);
}

.lsri-available--light .lsri-icon {
    color: var(--lsri-primary-600);
}

/* ---------- Two clinics block ---------- */
.lsri-clinics {
    padding: 4rem 0;
    background: #fff;
}

.lsri-clinics--slate {
    background: #f8fafc;
}

.lsri-clinics__head {
    max-width: 48rem;
    margin: 0 auto 2.5rem;
    text-align: center;
}

.lsri-clinics__grid {
    display: grid;
    gap: 1.5rem;
    max-width: 64rem;
    margin: 0 auto;
}

@media (min-width: 768px) {
    .lsri-clinics__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 1024px) {
    .lsri-clinics {
        padding: 6rem 0;
    }
}

.lsri-clinic-card {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    padding: 1.5rem;
    border: 1px solid var(--lsri-neutral-200);
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -2px rgba(0, 0, 0, 0.05);
}

@media (min-width: 1024px) {
    .lsri-clinic-card {
        padding: 2rem;
    }
}

.lsri-clinic-card__top {
    display: flex;
    align-items: flex-start;
    gap: 0.875rem;
}

.lsri-clinic-card__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    flex-shrink: 0;
    border-radius: 0.75rem;
    background: var(--lsri-primary-50);
    color: var(--lsri-primary-700);
    font-size: 1.25rem;
}

.lsri-clinic-card__name {
    margin: 0;
    color: var(--lsri-slate-900);
    font-family: var(--lsri-font-heading);
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.3;
}

.lsri-clinic-card__area {
    margin: 0.125rem 0 0;
    color: var(--lsri-neutral-600);
    font-size: 0.875rem;
}

.lsri-clinic-card__address {
    margin: 0;
    color: var(--lsri-neutral-700);
    font-style: normal;
    line-height: 1.6;
}

.lsri-clinic-card__label {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    margin: 0 0 0.5rem;
    color: var(--lsri-slate-900);
    font-size: 0.875rem;
    font-weight: 700;
}

.lsri-clinic-card__hours dl {
    margin: 0;
}

.lsri-clinic-card__hours dl > div {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.375rem 0;
    border-bottom: 1px solid var(--lsri-neutral-100);
    font-size: 0.9375rem;
}

.lsri-clinic-card__hours dt {
    color: var(--lsri-neutral-600);
}

.lsri-clinic-card__hours dd {
    margin: 0;
    color: var(--lsri-slate-900);
    font-weight: 600;
}

.lsri-clinic-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.lsri-clinic-card__actions .lsri-btn {
    flex: 1 1 12rem;
}

.lsri-clinic-card__more {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    margin-top: auto;
    color: var(--lsri-primary-700);
    font-weight: 600;
    font-size: 0.9375rem;
    text-decoration: none;
}

.lsri-clinic-card__more:hover {
    text-decoration: underline;
}

/* ---------- Trust strip (under service-page hero CTA) ---------- */
.lsri-trust {
    padding: 1rem 0;
    background: #fff;
    border-bottom: 1px solid var(--lsri-neutral-200);
}

.lsri-trust__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem 1rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.lsri-trust__item--wide {
    grid-column: 1 / -1;
}

@media (min-width: 1024px) {
    .lsri-trust__list {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: space-between;
        gap: 1rem 2rem;
    }
}

.lsri-trust__link {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    min-height: 44px;
    color: inherit;
    text-decoration: none;
}

a.lsri-trust__link:hover .lsri-trust__title {
    color: var(--lsri-primary-700);
}

.lsri-trust__logo-svg {
    width: 26px;
    height: 26px;
    flex-shrink: 0;
}

.lsri-trust__logo-icon {
    display: inline-flex;
    font-size: 26px;
    flex-shrink: 0;
}

.lsri-trust__logo-icon--doctify {
    color: #00a38f;
}

.lsri-trust__logo-img {
    height: 28px;
    width: auto;
    flex-shrink: 0;
    object-fit: contain;
}

.lsri-trust__logo-img--round {
    width: 28px;
}

.lsri-trust__text {
    display: flex;
    flex-direction: column;
    min-width: 0;
    line-height: 1.25;
}

.lsri-trust__title {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    color: var(--lsri-slate-900);
    font-size: 0.875rem;
    font-weight: 700;
}

.lsri-trust__sub {
    color: var(--lsri-neutral-600);
    font-size: 0.8125rem;
}

.lsri-trust__stars {
    display: inline-flex;
    gap: 1px;
    color: var(--lsri-star);
}

.lsri-trust__star {
    width: 0.8rem;
    height: 0.8rem;
    fill: currentColor;
}

.lsri-trust__logo-icon--mobile {
    display: none;
    color: var(--lsri-primary-700);
}

@media (max-width: 639px) {
    .lsri-trust__logo-img--wide {
        display: none;
    }

    .lsri-trust__logo-icon--mobile {
        display: inline-flex;
    }
}

/* ---------- Blog "Need this assessed or treated?" box ---------- */
.lsri-post-cta {
    margin: 2rem 0;
    padding: 1.25rem 1.25rem 1.5rem;
    border: 1px solid var(--lsri-primary-200);
    border-left: 4px solid var(--lsri-primary-700);
    border-radius: 0.75rem;
    background: var(--lsri-primary-50);
    font-size: 1rem;
    line-height: 1.6;
}

.lsri-post-cta--end {
    margin-top: 2.5rem;
}

.lsri-post-cta .lsri-post-cta__title {
    margin: 0 0 0.375rem;
    color: var(--lsri-slate-900);
    font-family: var(--lsri-font-heading);
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.3;
}

.lsri-post-cta .lsri-post-cta__text {
    margin: 0 0 1rem;
    color: var(--lsri-neutral-700);
}

.lsri-post-cta a.lsri-post-cta__link {
    display: inline;
    color: var(--lsri-primary-700);
    font-weight: 600;
    text-decoration: underline;
    text-decoration-color: var(--lsri-primary-200);
}

.lsri-post-cta__link .lsri-icon {
    display: inline;
    vertical-align: -0.2em;
}

.lsri-post-cta__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.lsri-post-cta__actions .lsri-btn {
    flex: 1 1 13rem;
}

.lsri-post-cta a.lsri-btn {
    text-decoration: none;
}

.lsri-post-cta a.lsri-btn--primary,
.lsri-post-cta a.lsri-btn--primary:hover {
    color: #fff;
}

.lsri-post-cta a.lsri-btn--secondary,
.lsri-post-cta a.lsri-btn--secondary:hover {
    color: var(--lsri-neutral-900);
}

.lsri-post-cta-section {
    padding: 0.5rem 0;
    background: #fff;
}

.lsri-post-cta-section__inner {
    max-width: 48rem;
    margin: 0 auto;
}

/* ---------- Location pages (single-rank_math_locations.php) ---------- */
.lsri-location__hero {
    padding: 3.5rem 0 3rem;
    background: linear-gradient(135deg, var(--lsri-slate-900), var(--lsri-primary-900));
    color: #fff;
}

@media (min-width: 1024px) {
    .lsri-location__hero {
        padding: 5rem 0 4.5rem;
    }
}

.lsri-eyebrow--light {
    color: #99f6e4;
}

.lsri-location__title {
    margin: 0 0 1.25rem;
    color: #fff;
    font-family: var(--lsri-font-heading);
    font-size: 2.25rem;
    line-height: 1.15;
    font-weight: 700;
}

@media (min-width: 1024px) {
    .lsri-location__title {
        font-size: 3rem;
    }
}

.lsri-location__address {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin: 0 0 0.5rem;
    color: #e2e8f0;
    font-size: 1.0625rem;
}

.lsri-location__address .lsri-icon {
    margin-top: 0.2em;
    color: #5eead4;
}

.lsri-location__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 1.75rem;
}

.lsri-location__content {
    padding: 3rem 0;
    background: #fff;
}

.lsri-location__prose {
    max-width: 48rem;
    margin: 0 auto;
    color: #334155;
    font-size: 1.0625rem;
    line-height: 1.75;
}

.lsri-location__prose h2,
.lsri-location__prose h3 {
    margin: 2rem 0 0.75rem;
    color: var(--lsri-slate-900);
    font-family: var(--lsri-font-heading);
    font-weight: 700;
    line-height: 1.3;
}

.lsri-location__prose h2 {
    font-size: 1.625rem;
}

.lsri-location__prose h3 {
    font-size: 1.25rem;
}

.lsri-location__prose p,
.lsri-location__prose ul,
.lsri-location__prose ol {
    margin: 1rem 0;
}

.lsri-location__prose ul {
    list-style: disc;
    padding-left: 1.5rem;
}

.lsri-location__prose ol {
    list-style: decimal;
    padding-left: 1.5rem;
}

.lsri-location__prose a {
    color: var(--lsri-primary-700);
    text-decoration: underline;
}

/* ---------- Breadcrumbs (partials/breadcrumbs.php) ---------- */
.lsri-breadcrumbs {
    position: relative;
    z-index: 1;
    padding: 0.625rem 0;
    background: #fff;
    border-bottom: 1px solid var(--lsri-neutral-200);
    color: var(--lsri-neutral-600);
    font-size: 0.8125rem;
    line-height: 1.4;
}

/* Desktop: the fixed header is 112px (64px top bar + 48px nav) and body padding is 64px. */
@media (min-width: 1024px) {
    .lsri-breadcrumbs {
        margin-top: 48px;
    }
}

.lsri-breadcrumbs .rank-math-breadcrumb p {
    margin: 0;
    white-space: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
}

.lsri-breadcrumbs a {
    color: var(--lsri-neutral-600);
    text-decoration: none;
}

.lsri-breadcrumbs a:hover {
    color: var(--lsri-primary-700);
    text-decoration: underline;
}

.lsri-breadcrumbs .separator {
    margin: 0 0.375rem;
    color: #a3a3a3;
}

.lsri-breadcrumbs .last {
    color: var(--lsri-slate-900);
    font-weight: 600;
}

/* ---------- Related treatments & scans ---------- */
.lsri-related {
    padding: 4rem 0;
    background: #fff;
    border-top: 1px solid var(--lsri-neutral-200);
}

.lsri-related__grid {
    display: grid;
    gap: 0.75rem;
    margin: 1.5rem 0 0;
    padding: 0;
    list-style: none;
}

@media (min-width: 640px) {
    .lsri-related__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 1024px) {
    .lsri-related__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 1rem;
    }
}

.lsri-related__card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    height: 100%;
    padding: 1rem 2.75rem 1rem 1.125rem;
    border: 1px solid var(--lsri-neutral-200);
    border-radius: 0.75rem;
    background: #fff;
    text-decoration: none;
    transition: border-color 0.2s, background-color 0.2s;
}

.lsri-related__card:hover {
    border-color: var(--lsri-primary-200);
    background: var(--lsri-primary-50);
}

.lsri-related__name {
    color: var(--lsri-slate-900);
    font-weight: 700;
    font-size: 1rem;
    line-height: 1.35;
}

.lsri-related__desc {
    color: var(--lsri-neutral-600);
    font-size: 0.875rem;
    line-height: 1.45;
}

.lsri-related__arrow {
    position: absolute;
    right: 1rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--lsri-primary-700);
}

/* ---------- Long-form content sections (thin-page expansions) ---------- */
.lsri-content {
    padding: 4rem 0;
}

@media (min-width: 1024px) {
    .lsri-content {
        padding: 6rem 0;
    }
}

.lsri-content--white {
    background: #fff;
}

.lsri-content--slate {
    background: #f8fafc;
}

.lsri-content__inner {
    max-width: 48rem;
    margin: 0 auto;
}

.lsri-prose {
    color: #475569;
    font-size: 1.0625rem;
    line-height: 1.75;
}

.lsri-prose p {
    margin: 0 0 1rem;
}

.lsri-prose h3 {
    margin: 1.75rem 0 0.5rem;
    color: var(--lsri-slate-900);
    font-family: var(--lsri-font-heading);
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.35;
}

.lsri-prose ul {
    margin: 0 0 1rem;
    padding-left: 1.25rem;
    list-style: disc;
}

.lsri-prose li {
    margin: 0.375rem 0;
}

.lsri-prose a {
    color: var(--lsri-primary-700);
    font-weight: 600;
    text-decoration: underline;
    text-decoration-color: var(--lsri-primary-200);
}

.lsri-prose strong {
    color: var(--lsri-slate-900);
}

.lsri-steps {
    counter-reset: lsri-step;
    margin: 1.5rem 0 0;
    padding: 0;
    list-style: none;
}

.lsri-steps > li {
    position: relative;
    margin: 0 0 1rem;
    padding: 1rem 1rem 1rem 3.75rem;
    border: 1px solid var(--lsri-neutral-200);
    border-radius: 0.75rem;
    background: #fff;
}

.lsri-steps > li::before {
    counter-increment: lsri-step;
    content: counter(lsri-step);
    position: absolute;
    left: 1rem;
    top: 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    background: var(--lsri-primary-700);
    color: #fff;
    font-weight: 700;
    font-size: 0.9375rem;
}

.lsri-steps strong {
    display: block;
    margin-bottom: 0.125rem;
    color: var(--lsri-slate-900);
}

.lsri-card-list {
    display: grid;
    gap: 0.75rem;
    margin: 1.5rem 0 0;
    padding: 0;
    list-style: none;
}

@media (min-width: 640px) {
    .lsri-card-list--2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.lsri-card-list > li {
    padding: 1rem 1.125rem;
    border: 1px solid var(--lsri-neutral-200);
    border-radius: 0.75rem;
    background: #fff;
}

.lsri-card-list strong {
    display: block;
    margin-bottom: 0.25rem;
    color: var(--lsri-slate-900);
}

.lsri-callout {
    margin: 1.5rem 0 0;
    padding: 1.25rem;
    border-left: 4px solid var(--lsri-primary-700);
    border-radius: 0 0.75rem 0.75rem 0;
    background: var(--lsri-primary-50);
}

.lsri-callout p:last-child {
    margin-bottom: 0;
}

/* ---------- Scroll-reveal (assets/js/reveal.js) ----------
 * Templates start many blocks at opacity-0 and relied on JS (and undefined animation classes) to
 * show them. Content is now visible by default; only below-the-fold blocks get a fade-in via JS. */
.opacity-0.animate-fade-up,
.opacity-0.animate-fade-left,
.opacity-0.animate-fade-right,
.opacity-0.animate-fade-in,
[x-intersect].opacity-0 {
    opacity: 1;
    transform: none;
}

html .lsri-reveal-pending {
    opacity: 0;
    transform: translateY(16px);
}

html .lsri-reveal-pending.lsri-revealed {
    opacity: 1;
    transform: none;
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

@media (prefers-reduced-motion: reduce) {
    html .lsri-reveal-pending {
        opacity: 1;
        transform: none;
    }

    .animate-float,
    .whatsapp-float {
        animation: none !important;
    }

    /* Logo strips keep drifting, just more slowly (owner's request) */
    html .animate-infinite-scroll {
        animation-duration: 180s;
    }
}

/* Logo strips (home "Affiliation by" and insurers): slower drift than style.css's 60s.
   Set here because this file is cache-busted by filemtime, style.css is not. */
.animate-infinite-scroll {
    animation-duration: 90s;
}

/* Logo strips: pause on hover only where there is a real mouse. On touch screens a tap
   leaves :hover stuck, which froze the strip until the visitor tapped elsewhere. */
@media (hover: hover) and (pointer: fine) {
    .animate-infinite-scroll:hover {
        animation-play-state: paused;
    }
}

/* ---------- Accessibility: skip link, focus, menu toggle ---------- */
.lsri-skip-link {
    position: absolute;
    left: 0.75rem;
    top: -100px;
    z-index: 100;
    padding: 0.75rem 1rem;
    border-radius: 0.5rem;
    background: var(--lsri-primary-700);
    color: #fff;
    font-weight: 600;
    text-decoration: none;
}

.lsri-skip-link:focus {
    top: 0.75rem;
}

#content:focus {
    outline: none;
}

a:focus-visible,
button:focus-visible,
summary:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
    outline: 3px solid var(--lsri-primary-600);
    outline-offset: 2px;
}

.bg-primary-700 a:focus-visible,
.bg-slate-900 a:focus-visible,
.bg-neutral-900 a:focus-visible,
.lsri-location__hero a:focus-visible {
    outline-color: #fff;
}

.lsri-menu-toggle__icon {
    width: 22px;
    height: 22px;
}

.lsri-menu-toggle span {
    display: inline-flex;
}

/* ---------- Contrast fixes ---------- */
/* The compiled CSS gives every heading #171717, which made headings without their own colour class
   near-invisible inside dark (.text-white) sections. Same specificity as that rule, loaded later:
   any explicit text-* class on a heading still wins. */
:where(.text-white) h1,
:where(.text-white) h2,
:where(.text-white) h3,
:where(.text-white) h4,
:where(.text-white) h5,
:where(.text-white) h6 {
    color: inherit;
}

.lsri-pill-green {
    background: #15803d;
}

.lsri-on-dark-muted {
    color: rgba(255, 255, 255, 0.88);
}

/* Utility missing from the compiled Tailwind file */
.text-emerald-800 {
    color: #065f46;
}

/* Decorative step numbers ("01", "02"…) drawn from data-step so they are not read out or contrast-checked */
[data-step]::before {
    content: attr(data-step);
}

/* Emerald/teal utilities used by the CPD page and header badge but missing from the compiled CSS
   (Tailwind default palette). */
.bg-emerald-100 { background-color: #d1fae5; }
.bg-emerald-200 { background-color: #a7f3d0; }
.bg-emerald-400 { background-color: #34d399; }
.bg-emerald-500 { background-color: #10b981; }
.bg-emerald-600 { background-color: #059669; }
.bg-emerald-700 { background-color: #047857; }
.text-emerald-300 { color: #6ee7b7; }
.text-emerald-400 { color: #34d399; }
.text-emerald-700 { color: #047857; }
.text-teal-200 { color: #99f6e4; }
.lsri-ml-auto { margin-left: auto; }

/* ---------- Hero CTA (partials/hero-cta.php) ---------- */
.lsri-hero-cta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.lsri-btn--lg {
    min-height: 52px;
    padding: 0.875rem 1.5rem;
    font-size: 1rem;
}

@media (max-width: 479px) {
    .lsri-hero-cta .lsri-btn {
        flex: 1 1 100%;
    }
}

/* Home hero trust pill: wrap on small screens instead of running off the edge */
@media (max-width: 639px) {
    .lsri-hero-pill {
        border-radius: 1rem;
        row-gap: 0.375rem;
    }

    .lsri-hero-pill > .w-px {
        display: none;
    }
}

/* Hub heroes (imaging, injections, consultation): were a fixed 60–70vh height, which clipped the
   content (and the CTA) on small screens. */
.lsri-hub-hero {
    min-height: 70vh;
    padding: 3rem 0;
}

.lsri-hub-hero--short {
    min-height: 60vh;
}

.gap-x-6 { column-gap: 1.5rem; }
.gap-y-2 { row-gap: 0.5rem; }

/* =====================================================================
 * Batch 3 — design system
 * One set of tokens for spacing, radii, shadows and type, plus the shared
 * service-page hero, the closing CTA band and section rhythm on phones.
 * ===================================================================== */
:root {
    --lsri-radius-sm: 0.5rem;
    --lsri-radius-md: 0.75rem;
    --lsri-radius-lg: 1rem;
    --lsri-radius-xl: 1.5rem;
    --lsri-shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.06);
    --lsri-shadow-md: 0 4px 12px -2px rgba(15, 23, 42, 0.08), 0 2px 4px -2px rgba(15, 23, 42, 0.05);
    --lsri-shadow-lg: 0 16px 32px -12px rgba(15, 23, 42, 0.18);
    --lsri-section-y: 3.5rem;
    --lsri-measure: 68ch;
}

@media (min-width: 768px) {
    :root {
        --lsri-section-y: 4.5rem;
    }
}

@media (min-width: 1024px) {
    :root {
        --lsri-section-y: 6rem;
    }
}

/* Buttons: every size keeps a 44px touch target */
.lsri-btn--sm {
    min-height: 44px;
}

.lsri-btn--ghost {
    background: transparent;
    color: var(--lsri-primary-700);
    border-color: var(--lsri-primary-200);
}

.lsri-btn--ghost:hover {
    background: var(--lsri-primary-50);
    color: var(--lsri-primary-800);
}

.lsri-btn--on-dark:hover {
    color: var(--lsri-primary-800);
}

/* Section rhythm on phones: the templates' py-20 / py-24 (80–96px) leave big empty gaps at 412px */
@media (max-width: 767px) {
    main .py-24,
    main .py-20 {
        padding-top: var(--lsri-section-y);
        padding-bottom: var(--lsri-section-y);
    }

    main .mb-16 {
        margin-bottom: 2.5rem;
    }

    main .mb-14 {
        margin-bottom: 2.25rem;
    }
}

/* ---------- Service-page hero (all imaging / injection / consultation templates) ----------
 * Height now follows the content (was a fixed 600/700px): on desktop the trust strip is on the
 * first screen; on phones the Call button sits higher. */
.lsri-service-hero > .container-custom {
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
}

.lsri-service-hero h1 {
    font-size: 2.125rem;
    line-height: 1.12;
    letter-spacing: -0.02em;
}

.lsri-service-hero .backdrop-blur-lg.rounded-3xl {
    padding: 1.5rem;
    border-radius: var(--lsri-radius-xl);
}

.lsri-service-hero p.text-xl {
    font-size: 1.125rem;
    line-height: 1.6;
}

.lsri-service-hero p.text-lg {
    font-size: 1rem;
}

@media (min-width: 1024px) {
    .lsri-service-hero > .container-custom {
        padding-top: 3.5rem;
        padding-bottom: 3.5rem;
    }

    .lsri-service-hero h1 {
        font-size: 3.25rem;
    }

    .lsri-service-hero .backdrop-blur-lg.rounded-3xl {
        padding: 2.5rem;
    }

    .lsri-service-hero p.text-xl {
        font-size: 1.25rem;
    }

    .lsri-service-hero p.text-lg {
        font-size: 1.0625rem;
    }
}

/* ---------- Closing CTA band (partials/cta-band.php) ---------- */
.lsri-cta-band {
    padding: var(--lsri-section-y) 0;
    background: linear-gradient(135deg, var(--lsri-primary-900) 0%, var(--lsri-slate-900) 100%);
    color: #fff;
}

.lsri-cta-band__inner {
    max-width: 46rem;
    margin: 0 auto;
    text-align: center;
}

.lsri-cta-band .lsri-cta-band__title {
    margin: 0 0 1rem;
    color: #fff;
    font-family: var(--lsri-font-heading);
    font-size: 1.875rem;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -0.02em;
}

@media (min-width: 1024px) {
    .lsri-cta-band .lsri-cta-band__title {
        font-size: 2.5rem;
    }
}

.lsri-cta-band__text {
    margin: 0 auto 0.75rem;
    max-width: 40rem;
    color: #cbd5e1;
    font-size: 1.0625rem;
    line-height: 1.65;
}

.lsri-cta-band__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.75rem;
    margin-top: 2rem;
}

@media (max-width: 479px) {
    .lsri-cta-band__actions .lsri-btn {
        flex: 1 1 100%;
    }
}

.lsri-cta-band__hours {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.5rem 1.5rem;
    margin: 1.75rem 0 0;
    padding: 0;
    list-style: none;
    color: #cbd5e1;
    font-size: 0.875rem;
}

.lsri-cta-band__hours li {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
}

.lsri-cta-band__hours .lsri-icon {
    color: #5eead4;
}

.lsri-cta-band a:focus-visible {
    outline-color: #fff;
}

/* Related treatments (white) followed by the clinics block: tint the clinics block so the two
   sections don't run together. */
.lsri-related + .lsri-clinics {
    background: #f8fafc;
    border-top: 1px solid var(--lsri-neutral-200);
}

.lsri-cta-band__link {
    margin: 1.25rem 0 0;
    font-size: 0.9375rem;
}

.lsri-cta-band__link a {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    min-height: 44px;
    color: #fff;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 4px;
    text-decoration-color: rgba(255, 255, 255, 0.4);
}

.lsri-cta-band__points {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.5rem 1.5rem;
    margin: 1.5rem 0 0;
    padding: 0;
    list-style: none;
    color: #e2e8f0;
    font-size: 0.9375rem;
    font-weight: 600;
}

.lsri-cta-band__points li {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
}

.lsri-cta-band__points .lsri-icon {
    color: #5eead4;
}

/* Type scale: the compiled CSS sizes every unclassed h3 at 30px on desktop — larger than many
   section titles — so card titles without their own size class looked like headings. Headings
   with a text-* class are unaffected (class beats element). */
h3 {
    font-size: 1.25rem;
    line-height: 1.4;
}

@media (min-width: 1024px) {
    h3 {
        font-size: 1.375rem;
        line-height: 1.35;
    }
}

/* ---------- Home page ---------- */
.lsri-home-steps-cta {
    display: flex;
    justify-content: center;
    margin-top: 3rem;
}

.lsri-home-steps-cta .lsri-hero-cta {
    justify-content: center;
}

@media (max-width: 639px) {
    .lsri-home-badges > a {
        padding: 0.5rem 0.75rem;
        font-size: 0.875rem;
    }
}

.lsri-doctor-card {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-top: 1.5rem;
    padding: 1rem 1.25rem;
    border: 1px solid var(--lsri-primary-200);
    border-radius: var(--lsri-radius-lg);
    background: var(--lsri-primary-50);
    text-decoration: none;
    transition: border-color 0.2s, box-shadow 0.2s;
}

.lsri-doctor-card:hover {
    border-color: var(--lsri-primary-600);
    box-shadow: var(--lsri-shadow-md);
}

.lsri-doctor-card__photo {
    width: 72px;
    height: 72px;
    flex-shrink: 0;
    border-radius: 999px;
    object-fit: cover;
    object-position: center top;
    border: 3px solid #fff;
    box-shadow: var(--lsri-shadow-sm);
}

.lsri-doctor-card__body {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-width: 0;
}

.lsri-doctor-card__name {
    color: var(--lsri-slate-900);
    font-family: var(--lsri-font-heading);
    font-size: 1.0625rem;
    font-weight: 700;
    line-height: 1.3;
}

.lsri-doctor-card__creds {
    color: var(--lsri-neutral-600);
    font-size: 0.8125rem;
    line-height: 1.45;
}

.lsri-doctor-card__link {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    color: var(--lsri-primary-700);
    font-size: 0.9375rem;
    font-weight: 600;
}

/* ---------- Footer ---------- */
.lsri-footer__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2.5rem 1.5rem;
}

.lsri-footer__col--brand,
.lsri-footer__col--clinics {
    grid-column: 1 / -1;
}

@media (min-width: 768px) {
    .lsri-footer__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (min-width: 1024px) {
    .lsri-footer__grid {
        grid-template-columns: 1.3fr 1fr 1fr 0.9fr 1.3fr;
        gap: 2.5rem;
    }

    .lsri-footer__col--brand,
    .lsri-footer__col--clinics {
        grid-column: auto;
    }
}

.lsri-footer__heading {
    margin: 0 0 1rem;
    color: #fff;
    font-family: var(--lsri-font-heading);
    font-size: 0.9375rem;
    font-weight: 700;
    line-height: 1.4;
}

.lsri-footer__list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.lsri-footer__list a,
.lsri-footer__contact a {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    min-height: 32px;
    color: #a3a3a3;
    font-size: 0.875rem;
    text-decoration: none;
    transition: color 0.2s;
}

.lsri-footer__list a:hover,
.lsri-footer__contact a:hover,
.lsri-footer__directions:hover {
    color: #fff;
}

.lsri-footer__clinic {
    margin: 0 0 1.25rem;
    color: #a3a3a3;
    font-size: 0.875rem;
    line-height: 1.55;
}

.lsri-footer__clinic p {
    margin: 0;
}

.lsri-footer__clinic .lsri-footer__clinic-name {
    color: #fff;
    font-weight: 600;
}

.lsri-footer__hours {
    color: #d4d4d4;
}

.lsri-footer__directions {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    min-height: 32px;
    color: #7dd3fc;
    font-size: 0.8125rem;
    font-weight: 600;
    text-decoration: none;
}

.lsri-footer__contact {
    display: flex;
    flex-wrap: wrap;
    gap: 0 1.25rem;
    margin: 0.25rem 0 0;
    padding: 1rem 0 0;
    border-top: 1px solid #262626;
    list-style: none;
}

.lsri-footer__contact .lsri-icon,
.lsri-footer__directions .lsri-icon {
    color: #7dd3fc;
}

@media (min-width: 1024px) {
    .lsri-footer__contact {
        flex-direction: column;
    }
}

/* ---------- Desktop main nav: one line from 1024px (11 items) ---------- */
.lsri-mainnav a {
    white-space: nowrap;
}

@media (min-width: 1024px) and (max-width: 1279px) {
    .lsri-mainnav {
        column-gap: 1rem;
    }

    .lsri-mainnav > a,
    .lsri-mainnav > div > a {
        font-size: 0.8125rem;
    }
}

/* ---------- Blog article (single.php) ---------- */
.lsri-article {
    max-width: 44rem;
    margin: 0 auto;
}

.lsri-article .blog-content {
    font-size: 1.0625rem;
    line-height: 1.75;
}

.lsri-article .blog-content h2 {
    font-size: 1.625rem;
    line-height: 1.3;
    letter-spacing: -0.01em;
    scroll-margin-top: 7rem;
}

.lsri-article .blog-content h3 {
    font-size: 1.25rem;
    scroll-margin-top: 7rem;
}

.lsri-article .blog-content h4 {
    margin: 1.75rem 0 0.75rem;
    color: var(--lsri-slate-900);
    font-size: 1.0625rem;
    font-weight: 700;
}

@media (min-width: 1024px) {
    .lsri-article .blog-content h2 {
        font-size: 1.875rem;
    }

    .lsri-article .blog-content h3 {
        font-size: 1.375rem;
    }
}

.lsri-article .blog-content table {
    display: block;
    width: 100%;
    max-width: 100%;
    margin: 2rem 0;
    overflow-x: auto;
    border-collapse: collapse;
    font-size: 0.9375rem;
}

.lsri-article .blog-content th,
.lsri-article .blog-content td {
    padding: 0.625rem 0.75rem;
    border: 1px solid var(--lsri-neutral-200);
    text-align: left;
    vertical-align: top;
}

.lsri-article .blog-content th {
    background: #f8fafc;
    color: var(--lsri-slate-900);
    font-weight: 700;
}

.lsri-article .blog-content figure {
    margin: 2rem 0;
}

.lsri-article .blog-content figcaption {
    margin-top: -1.25rem;
    color: var(--lsri-neutral-600);
    font-size: 0.875rem;
    text-align: center;
}

.lsri-article .blog-content hr {
    margin: 2.5rem 0;
    border: 0;
    border-top: 1px solid var(--lsri-neutral-200);
}

.lsri-article .blog-content blockquote {
    padding: 0.75rem 1.25rem;
    border-left-color: var(--lsri-primary-600);
    background: var(--lsri-primary-50);
    border-radius: 0 var(--lsri-radius-md) var(--lsri-radius-md) 0;
}

.lsri-eeat p {
    margin: 0;
}

.lsri-eeat__icon {
    display: inline-flex;
    padding-top: 0.1rem;
    color: var(--lsri-primary-700);
}

.lsri-author-box {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    margin-top: 3rem;
    padding: 1.5rem;
    border: 1px solid var(--lsri-neutral-200);
    border-bottom: 4px solid var(--lsri-primary-600);
    border-radius: var(--lsri-radius-lg);
    background: #f8fafc;
}

@media (min-width: 640px) {
    .lsri-author-box {
        flex-direction: row;
        align-items: flex-start;
        padding: 1.75rem;
    }
}

.lsri-author-box__photo {
    width: 96px;
    height: 96px;
    flex-shrink: 0;
    border-radius: 999px;
    object-fit: cover;
    object-position: center top;
    border: 3px solid #fff;
    box-shadow: var(--lsri-shadow-md);
}

.lsri-author-box .lsri-author-box__title {
    margin: 0 0 0.25rem;
    color: var(--lsri-slate-900);
    font-family: var(--lsri-font-heading);
    font-size: 1.1875rem;
    font-weight: 700;
    line-height: 1.35;
}

.lsri-author-box__creds {
    margin: 0 0 0.75rem;
    color: var(--lsri-primary-700);
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.5;
}

.lsri-author-box__bio {
    margin: 0 0 1rem;
    color: #475569;
    font-size: 0.9375rem;
    line-height: 1.65;
}

.lsri-author-box__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem 1.25rem;
}

.lsri-author-box__badge {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.25rem 0.75rem;
    border-radius: 999px;
    background: #e2e8f0;
    color: #334155;
    font-size: 0.75rem;
    font-weight: 700;
}

.lsri-author-box__link {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    min-height: 44px;
    color: var(--lsri-primary-700);
    font-size: 0.9375rem;
    font-weight: 600;
    text-decoration: none;
}

.lsri-author-box__link:hover {
    text-decoration: underline;
}

/* Referral form: say something while the external JotForm iframe loads */
.jotform-container {
    position: relative;
    min-height: 800px;
}

.jotform-container::before {
    content: "Loading the referral form…";
    position: absolute;
    top: 2rem;
    left: 0;
    right: 0;
    color: var(--lsri-neutral-600);
    font-size: 0.9375rem;
    text-align: center;
}

.jotform-container iframe {
    position: relative;
}

/* Post content pasted from other apps can carry absolutely-positioned wrappers wider than the
   page (e.g. /frozen-shoulder-effective-treatment-options-explained/ at 1440px). Keep them inside
   the article column; tables scroll inside themselves (see .blog-content table). */
.lsri-article .blog-content {
    position: relative;
    overflow-x: clip;
}

/* Hover-only overlays/icons. They used opacity-0, which the pages' fade-in scripts strip from
   every element on scroll, leaving the overlay permanently visible. */
.lsri-hover-reveal {
    opacity: 0;
}

.group:hover .lsri-hover-reveal,
.group:focus-visible .lsri-hover-reveal {
    opacity: 1;
}

/* Keyboard focus must stay visible even where a template adds focus:outline-none (MRI FAQ). */
.focus\:outline-none:focus-visible {
    outline: 3px solid var(--lsri-primary-600);
    outline-offset: 2px;
}

/* FAQ accordions (<details> and button versions): same touch target and marker everywhere */
details > summary {
    min-height: 44px;
}

details > summary::-webkit-details-marker {
    display: none;
}

details > summary::marker {
    content: "";
}

/* Lucide placeholders: <i data-lucide class="w-4 h-4"> is inline (so its size is ignored) until
   the script swaps it for an <svg>; reserve the box so text doesn't jump when icons draw. */
i[data-lucide] {
    display: inline-block;
    flex-shrink: 0;
    vertical-align: middle;
}
