1<!DOCTYPE html><html lang="en-US"> <!-- 2 _________________ 3 /\ _____ \ ______ ___ ___ 4 \ \ \ / \ /\__ _\ /'___\/\_ \ 5 \ \ \ / / \ \/_/\ \/ ___ /\ \__/\//\ \ __ __ __ _ 6 \ \ \/ / \ \ \ \ \ /' _ `\ \ ,__\ \ \ \ /\ \/\ \/\ \/'\ 7 \ \ / \ \ \_\ \__/\ \/\ \ \ \_/ \_\ \_\ \ \_\ \/> </ 8 \ \ \____\ \ /\_____\ \_\ \_\ \_\ /\____\\ \____//\_/\_\ 9 \ \________________\ \/_____/\/_/\/_/\/_/ \/____/ \/___/ \//\/_/ 10 \/________________/ 11--> <head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta http-equiv="x-ua-compatible" content="ie=edge"><meta name="generator" content="Growthstack by Influx"><meta name="swap" content="johncompoginismd.com"><meta name="city" content="Newport Beach"><meta name="country" content="USA"><meta name="state" content="CA"><meta name="zipcode" content="92660"><meta property="og:locale" content="en_US"><meta property="og:type" content="website"><meta property="og:title" content="Contact Us | John Compoginis, MD"><meta property="og:description" content="Find contact details and office locations for our practice. Schedule a consultation or reach out with any questions about procedures and services."><meta property="og:site_name" content="John M. Compoginis, M.D. INC"><link rel="sitemap" type="application/xml" href="/sitemap.xml"><link rel="canonical" href="https://johncompoginismd.com/contact/"><link rel="preload" as="image" href="/_static_/masthead/about-01.jpg" imagesrcset="/_static_/masthead/@720@/about-01.jpg 720w, /_static_/masthead/@1080@/about-01.jpg 1080w, /_static_/masthead/@1620@/about-01.jpg 1620w, /_static_/masthead/about-01.jpg 2600w" imagesizes="100vw"><link rel="preconnect" href="https://use.typekit.net/"><style>@font-face { 12font-family:"the-seasons"; 13src:url("https: 14font-display:auto;font-style:normal;font-weight:400;font-stretch:normal; 15} 16@font-face { 17font-family:"gotham"; 18src:url("https: 19font-display:auto;font-style:normal;font-weight:500;font-stretch:normal; 20} 21@font-face { 22font-family:"gotham"; 23src:url("https: 24font-display:auto;font-style:italic;font-weight:300;font-stretch:normal; 25} 26@font-face { 27font-family:"gotham"; 28src:url("https: 29font-display:auto;font-style:italic;font-weight:500;font-stretch:normal; 30} 31@font-face { 32font-family:"gotham"; 33src:url("https: 34font-display:auto;font-style:normal;font-weight:300;font-stretch:normal; 35} 36@font-face { 37font-family:"gotham"; 38src:url("https: 39font-display:auto;font-style:normal;font-weight:400;font-stretch:normal; 40} 41.masthead__image { 42 background-position: top center; 43 background-image: none; 44 transform-origin: bottom left; 45 position: absolute; 46 height: 100%; 47 width: 100%; 48 top: 0; 49 overflow: hidden; 50 z-index: -1; 51 background-size: cover; 52 background-position: center center; 53} 54.masthead__image .gatsby-image-wrapper { 55 max-width: unset; 56 position: absolute !important; 57} 58@media (max-width: 840px) { 59 .masthead__image .gatsby-image-wrapper { 60 position: absolute !important; 61 } 62} 63.masthead__image .gatsby-image-wrapper { 64 min-width: 100%; 65 min-height: 100%; 66 overflow: hidden; 67 width: auto; 68 height: 100%; 69 margin: auto; 70 max-width: 100%; 71 object-fit: cover; 72 left: 0; 73 opacity: 0.0001; 74 -webkit-transition-property: opacity, -webkit-transform, filter; 75 -webkit-transition-duration: 1.5s, 10s, 3s; 76 -webkit-transform-transition-delay: 0s, 0s, 1.5s; 77 -webkit-transform-origin: top right; 78 -moz-transition-property: opacity, -moz-transform, filter; 79 -moz-transition-duration: 1.5s, 10s, 3s; 80 -moz-transition-transition-delay: 0s, 0s, 1.5s; 81 -moz-transform-origin: top right; 82 -ms-transition-property: opacity, -ms-transform, filter; 83 -ms-transition-duration: 1.5s, 10s, 3s; 84 -ms-transition-transition-delay: 0s, 0s, 1.5s; 85 -ms-transform-origin: top right; 86 -o-transition-property: opacity, -o-transform, filter; 87 -o-transition-duration: 1.5s, 10s, 3s; 88 -o-transition-transition-delay: 0s, 0s, 1.5s; 89 -o-transform-origin: top right; 90 transition-property: opacity, transform, filter; 91 transition-duration: 1.5s, 10s, 3s; 92 transition-delay: 0s, 0s, 1.5s; 93 transform-origin: top right; 94} 95@media (max-width: 840px) { 96 .masthead__image .gatsby-image-wrapper { 97 max-height: 100%; 98 } 99} 100.masthead__image .gatsby-image-wrapper:nth-child(2n+1) { 101 -webkit-transform-origin: top left; 102 -moz-transform-origin: top left; 103 -ms-transform-origin: top left; 104 -o-transform-origin: top left; 105 transform-origin: top left; 106} 107.masthead__image .gatsby-image-wrapper.first-load { 108 opacity: 1; 109} 110.masthead__image .gatsby-image-wrapper.fx { 111 opacity: 1; 112 -webkit-transform: scale(1.1); 113 -moz-transform: scale(1.1); 114 -ms-transform: scale(1.1); 115 -o-transform: scale(1.1); 116 transform: scale(1.1); 117} 118.masthead__image .gatsby-image-wrapper.fx:first-child + img ~ img { 119 z-index: -1; 120} 121 122@media (max-width: 840px) { 123 .is-desktop-only-image { 124 display: none !important; 125 } 126} 127 128@media (min-width: 840px) { 129 .is-mobile-only-image { 130 display: none !important; 131 } 132} 133 134.masthead-locations { 135 padding-bottom: 15px; 136} 137.masthead-locations::-webkit-scrollbar {
138 margin-top: 15px; 139 -webkit-appearance: none; 140 width: 100%; 141 height: 7px; 142} 143.masthead-locations::-webkit-scrollbar-thumb { 144 border-radius: 4px; 145 background-color: rgba(0, 0, 0, 0.3); 146 -webkit-box-shadow: 0 0 1px rgba(255, 255, 255, 0.5); 147}</style><link rel="icon" type="image/png" href="/_static_/logos/favicon.png" sizes="any"><meta property="og:image" content="/_static_/background/og-image.jpg?1778103399518"><title>Contact Us | John Compoginis, MD</title><meta name="description" content="Find contact details and office locations for our practice. Schedule a consultation or reach out with any questions about procedures and services."><link rel="preconnect" href="https://influx-site-assets.s3.us-west-2.amazonaws.com/" /> 148 149<!-- deploy -->
149<script type="application/ld+json" id="newschema"> 150{"@context":"https://schema.org","@graph":[{"@type":["Organization","MedicalOrganization"],"@id":"https://johncompoginismd.com/#organization","name":"John M. Compoginis, M.D. INC","url":"https://johncompoginismd.com/","sameAs":["https://www.facebook.com/Drcompoginis/","https://www.instagram.com/drcompoginis/","https://www.youtube.com/@drcompoginis","https://www.yelp.com/biz/john-compoginis-md-newport-beach-2","https://www.realself.com/dr/john-compoginis-pasadena-ca","https://maps.app.goo.gl/CHkgTwCaG5sdUePH6"],"subOrganization":[{"@id":"https://johncompoginismd.com/es/#location"}],"areaServed":{"@type":"City","name":"Newport Beach, CA"},"logo":{"@type":"ImageObject","@id":"https://johncompoginismd.com/#logo","url":"https://johncompoginismd.com/_static_/logos/logo.png","contentUrl":"https://johncompoginismd.com/_static_/logos/logo.png","caption":"John M. Compoginis, M.D. INC"},"image":{"@type":"ImageObject","@id":"https://johncompoginismd.com/#image","url":"https://johncompoginismd.com/_static_/background/og-image.jpg?1778103399518","contentUrl":"https://johncompoginismd.com/_static_/background/og-image.jpg?1778103399518","caption":"John M. Compoginis, M.D. INC"},"telephone":"(949) 247-8543","contactPoint":{"@type":"ContactPoint","telephone":"(949) 247-8543","contactType":"customer service"},"aggregateRating":{"@type":"AggregateRating","ratingValue":"4.9","reviewCount":"74","bestRating":5,"worstRating":1},"hasOfferCatalog":{"@type":"OfferCatalog","name":"John M. Compoginis, M.D. INC Services","itemListElement":[{"@type":"ListItem","position":1,"item":{"@type":"Offer","itemOffered":{"@type":"Service","@id":"https://johncompoginismd.com/labiaplasty/#service","name":"Labiaplasty","description":"Labiaplasty reshapes and reduces excess labial tissue to improve comfort, symmetry, and confidence while maintaining natural anatomy.","url":"https://johncompoginismd.com/labiaplasty/"}}},{"@type":"ListItem","position":2,"item":{"@type":"Offer","itemOffered":{"@type":"Service","@id":"https://johncompoginismd.com/breast-augmentation-with-lift/#service","name":"Breast Aug With Lift","description":"Breast augmentation with lift combines implants and a breast lift to restore volume, improve shape, and reposition the breasts for a more youthful appearance.","url":"https://johncompoginismd.com/breast-augmentation-with-lift/"}}},{"@type":"ListItem","position":3,"item":{"@type":"Offer","itemOffered":{"@type":"Service","@id":"https://johncompoginismd.com/gynecomastia-surgery/#service","name":"Gynecomastia","description":"Gynecomastia surgery restores a masculine chest by safely removing excess breast tissue, fat, and skin for a firmer, more natural contour.","url":"https://johncompoginismd.com/gynecomastia-surgery/"}}},{"@type":"ListItem","position":4,"item":{"@type":"Offer","itemOffered":{"@type":"Service","@id":"https://johncompoginismd.com/liquid-facelift/#service","name":"Liquid Facelift","description":"Restore youthful volume and smoothness with a liquid facelift using microfat grafting for natural, long-lasting facial rejuvenation.","url":"https://johncompoginismd.com/liquid-facelift/"}}},{"@type":"ListItem","position":5,"item":{"@type":"Offer","itemOffered":{"@type":"Service","@id":"https://johncompoginismd.com/lip-enhancement/#service","name":"Lip Enhancement","description":"Enhance volume, shape, and symmetry with lip enhancement treatments designed for soft, natural-looking results.","url":"https://johncompoginismd.com/lip-enhancement/"}}},{"@type":"ListItem","position":6,"item":{"@type":"Offer","itemOffered":{"@type":"Service","@id":"https://johncompoginismd.com/tummy-tuck/#service","name":"Tummy Tuck","description":"A tummy tuck removes excess skin and fat while tightening abdominal muscles, creating a flatter, firmer, and more sculpted midsection.","url":"https://johncompoginismd.com/tummy-tuck/"}}},{"@type":"ListItem","position":7,"item":{"@type":"Offer","itemOffered":{"@type":"Service","@id":"https://johncompoginismd.com/pec-implants/#service","name":"Pec Implants","description":"Pec implants enhance chest size and definition, creating a stronger, more sculpted masculine contour when diet and exercise arenât enough.","url":"https://johncompoginismd.com/pec-implants/"}}},{"@type":"ListItem","position":8,"item":{"@type":"Offer","itemOffered":{"@type":"Service","@id":"https://johncompoginismd.com/post-weight-loss-surgery/#service","name":"Post-Weight Loss Surgery","description":"Refine your results after major weight loss with post-weight loss surgery by Dr. John Compoginis in Newport Beach. Restore smooth, sculpted contours.","url":"https://johncompoginismd.com/post-weight-loss-surgery/"}}},{"@type":"ListItem","position":9,"item":{"@type":"Offer","itemOffered":{"@type":"Service","@id":"https://johncompoginismd.com/co2-laser/#service","name":"CO2 laser","description":"CO2 laser resurfacing reduces wrinkles, scars, and sun damage by renewing the skin for a smoother, clearer, more youthful appearance.","url":"https://johncompoginismd.com/co2-laser/"}}},{"@type":"ListItem","position":10,"item":{"@type":"Offer","itemOffered":{"@type":"Service","@id":"https://johncompoginismd.com/facelift/#service","name":"Facelift","description":"Facelift surgery lifts and tightens facial tissues to reduce visible signs of aging, restoring smoother contours and a more refreshed, youthful appearance.","url":"https://johncompoginismd.com/facelift/"}}},{"@type":"ListItem","position":11,"item":{"@type":"Offer","itemOffered":{"@type":"Service","@id":"https://johncompoginismd.com/breast-implant-removal/#service","name":"Breast Implant Removal","description":"Breast implant removal surgery removes implants and surrounding scar tissue to restore natural breast contours or prepare for a refreshed result.","url":"https://johncompoginismd.com/breast-implant-removal/"}}},{"@type":"ListItem","position":12,"item":{"@type":"Offer","itemOffered":{"@type":"Service","@id":"https://johncompoginismd.com/breast-reduction/#service","name":"Breast Reduction","description":"Breast reduction surgery removes excess breast tissue, fat, and skin to create lighter, more proportionate breasts while relieving physical discomfort.","url":"https://johncompoginismd.com/breast-reduction/"}}},{"@type":"ListItem","position":13,"item":{"@type":"Offer","itemOffered":{"@type":"Service","@id":"https://johncompoginismd.com/brazilian-butt-lift/#service","name":"Brazilian Butt Lift","description":"A Brazilian Butt Lift enhances the shape and volume of the buttocks using your bodyâs own fat, creating fuller, natural-looking curves while sculpting surrounding areas.","url":"https://johncompoginismd.com/brazilian-butt-lift/"}}},{"@type":"ListItem","position":14,"item":{"@type":"Offer","itemOffered":{"@type":"Service","@id":"https://johncompoginismd.com/breast-lift/#service","name":"Breast Lift","description":"Breast lift surgery reshapes and elevates sagging breasts by removing excess skin and restoring a more youthful, balanced contour","url":"https://johncompoginismd.com/breast-lift/"}}},{"@type":"ListItem","position":15,"item":{"@type":"Offer","itemOffered":{"@type":"Service","@id":"https://johncompoginismd.com/liposuction/#service","name":"Liposuction And Lipo 360","description":"Liposuction and Lipo 360 remove stubborn fat and sculpt multiple areas of the body, creating smoother contours and a more balanced, refined silhouette.","url":"https://johncompoginismd.com/liposuction/"}}},{"@type":"ListItem","position":16,"item":{"@type":"Offer","itemOffered":{"@type":"Service","@id":"https://johncompoginismd.com/breast-implant-revision/#service","name":"Breast Implant Revision","description":"Refine your results with breast implant revision , designed to correct concerns, restore balance, and achieve a more natural, confident look.","url":"https://johncompoginismd.com/breast-implant-revision/"}}},{"@type":"ListItem","position":17,"item":{"@type":"Offer","itemOffered":{"@type":"Service","@id":"https://johncompoginismd.com/mommy-makeover/#service","name":"Mommy Makeover","description":"A Mommy Makeover combines customized procedures to restore the body after pregnancy, addressing areas like the breasts and abdomen for smoother, more balanced contours.","url":"https://johncompoginismd.com/mommy-makeover/"}}},{"@type":"ListItem","position":18,"item":{"@type":"Offer","itemOffered":{"@type":"Service","@id":"https://johncompoginismd.com/rf-microneedling/#service","name":"RF Microneedling","description":"RF microneedling combines radiofrequency energy and precision microneedling to tighten skin, improve texture, and stimulate long-term collagen production.","url":"https://johncompoginismd.com/rf-microneedling/"}}},{"@type":"ListItem","position":19,"item":{"@type":"Offer","itemOffered":{"@type":"Service","@id":"https://johncompoginismd.com/rhinoplasty/#service","name":"Rhinoplasty","description":"Refine the shape, balance, and function of your nose with rhinoplasty designed for natural, harmonious results.","url":"https://johncompoginismd.com/rhinoplasty/"}}},{"@type":"ListItem","position":20,"item":{"@type":"Offer","itemOffered":{"@type":"Service","@id":"https://johncompoginismd.com/breast-augmentation/#service","name":"Breast Augmentation","description":"Breast augmentation enhances breast size and shape using implants or fat transfer to create fuller, balanced, and natural-looking contours.","url":"https://johncompoginismd.com/breast-augmentation/"}}}]}},{"@type":"WebSite","@id":"https://johncompoginismd.com/#website","url":"https://johncompoginismd.com/","name":"John M. Compoginis, M.D. INC","publisher":{"@id":"https://johncompoginismd.com/#organization"}},{"@type":["LocalBusiness","MedicalBusiness","Physician"],"@id":"https://johncompoginismd.com/es/#location","name":"John M. Compoginis, M.D. INC Newport Beach","url":"https://johncompoginismd.com/es/","telephone":"
150(949) 659-3599","email":"[email protected]","parentOrganization":{"@id":"https://johncompoginismd.com/#organization"},"logo":{"@id":"https://johncompoginismd.com/#logo"},"image":{"@type":"ImageObject","@id":"https://johncompoginismd.com/es/#image","url":"https://johncompoginismd.com/_static_/masthead/mast-04.jpg","contentUrl":"https://johncompoginismd.com/_static_/masthead/mast-04.jpg","caption":"John M. Compoginis, M.D. INC Newport Beach"},"areaServed":[{"@type":"City","name":"Newport Beach, CA"},{"@type":"GeoCircle","geoMidpoint":{"@type":"GeoCoordinates","latitude":33.6243593,"longitude":-117.9056781},"geoRadius":24140}],"address":{"@type":"PostalAddress","streetAddress":"901 Dover Dr, Suite 122","addressLocality":"Newport Beach","addressRegion":"CA","postalCode":"92669","addressCountry":"US"},"geo":{"@type":"GeoCoordinates","latitude":33.6243593,"longitude":-117.9056781},"openingHoursSpecification":[{"@type":"OpeningHoursSpecification","dayOfWeek":"Monday","opens":"09:00","closes":"17:00"},{"@type":"OpeningHoursSpecification","dayOfWeek":"Tuesday","opens":"09:00","closes":"17:00"},{"@type":"OpeningHoursSpecification","dayOfWeek":"Wednesday","opens":"09:00","closes":"17:00"},{"@type":"OpeningHoursSpecification","dayOfWeek":"Thursday","opens":"09:00","closes":"17:00"},{"@type":"OpeningHoursSpecification","dayOfWeek":"Friday","opens":"09:00","closes":"17:00"}],"aggregateRating":{"@type":"AggregateRating","ratingValue":"4.9","reviewCount":"74","bestRating":5,"worstRating":1},"hasMap":"https://maps.app.goo.gl/CHkgTwCaG5sdUePH6","sameAs":["https://maps.app.goo.gl/CHkgTwCaG5sdUePH6"],"medicalSpecialty":"https://schema.org/PlasticSurgery"},{"@type":"ContactPage","@id":"https://johncompoginismd.com/contact/#webpage","url":"https://johncompoginismd.com/contact/","name":"Contact Us | John Compoginis, MD","description":"Find contact details and office locations for our practice. Schedule a consultation or reach out with any questions about procedures and services.","isPartOf":{"@id":"https://johncompoginismd.com/#website"},"publisher":{"@id":"https://johncompoginismd.com/#organization"},"inLanguage":"en-US","primaryImageOfPage":{"@type":"ImageObject","url":"https://johncompoginismd.com/_static_/masthead/about-01.jpg"},"about":{"@id":"https://johncompoginismd.com/#organization"}}]} 151</script>
151<link rel="stylesheet" href="/_astro/_gallery_.CN3ME_QQ.css"> 152<link rel="stylesheet" href="/_astro/_landing_.gFDOZ5yy.css"></head> <body style="--navImage: url(https://influx-site-assets.s3.us-west-2.amazonaws.com/johncompoginismd.com/logos/logo.png)" class=" contact-page contact "> <section class="header animated-menu"> <nav class="navbar container" role="navigation" aria-label="main navigation"> <div class="nav-flex-item nav-left-container animate fadeIn" style="justify-content: flex-start"> <a class="nav-link nav-left-link" href="/consultation/"> Free Consultation </a> <a class="nav-link nav-left-link second-nav-link-left" href="/resources/virtual-consultation/"> Virtual Consultation </a> <div class="header-left-social-icons header-social-icons"><a href="https://www.instagram.com/drcompoginis/" target="_blank" rel="noreferrer" class="nav-social-media-icon-container social-media-icon-container-instagram" aria-label="View John M. Compoginis, M.D. INC Instagram Page (Opens in a new tab)"><svg aria-hidden="true" focusable="false" class="nav-social-media-icon social-media-icon-instagram" width="100" height="100" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M4.69166 0.0548132C3.8379 0.0922779 3.25627 0.231432 2.74935 0.42946C2.22108 0.63284 1.77819 0.911149 1.3353 1.35537C0.88707 1.7996 0.620268 2.24917 0.412163 2.77368C0.21473 3.28213 0.0813297 3.86551 0.0439775 4.71649C0.00662526 5.56747 -0.00404779 5.84043 0.00128825 8.01338C0.00128825 10.1863 0.0119595 10.4593 0.0546478 11.3103C0.097336 12.1613 0.230738 12.7393 0.433508 13.2477C0.636277 13.7722 0.91375 14.2218 1.35664 14.666C1.79953 15.1103 2.24776 15.3832 2.77603 15.5866C3.28295 15.7846 3.86458 15.9184 4.71834 15.9559C5.57211 15.9934 5.84424 16.0041 8.01601 15.9987C10.1878 15.9987 10.4599 15.988 11.3137 15.9452C12.1674 15.9024 12.7437 15.7686 13.256 15.5705C13.7789 15.3672 14.2272 15.0889 14.67 14.6446C15.1129 14.2004 15.3851 13.7508 15.5878 13.2263C15.7853 12.7179 15.9187 12.1345 15.956 11.2835C15.9934 10.4272 16.004 10.1596 15.9987 7.98662C15.9987 5.81367 15.9827 5.54071 15.9454 4.68973C15.9027 3.83875 15.7693 3.25537 15.5718 2.74692C15.3637 2.22241 15.0916 1.77819 14.6487 1.33396C14.2005 0.88974 13.7522 0.616783 13.2293 0.413404C12.7224 0.215376 12.1408 0.0815737 11.287 0.044109C10.4332 0.00664437 10.1611 -0.00405991 7.98933 0.00129218C5.81756 0.00129218 5.54543 0.0119965 4.69166 0.0548132ZM4.78771 14.5162C4.00865 14.4841 3.58177 14.3503 3.29896 14.2432C2.92543 14.0987 2.65863 13.9274 2.37582 13.6438C2.09301 13.3655 1.92226 13.0979 1.77819 12.7232C1.66613 12.4396 1.53807 12.0167 1.50071 11.2407C1.46336 10.3951 1.45269 10.1435 1.44735 8.00803C1.44735 5.87254 1.44735 5.62099 1.49004 4.77536C1.52206 3.99396 1.65546 3.57114 1.76218 3.28748C1.90625 2.91283 2.07701 2.64523 2.35982 2.36692C2.63729 2.08861 2.90409 1.91199 3.27761 1.76748C3.56042 1.65509 3.98197 1.52664 4.76103 1.48917C5.60412 1.45171 5.86025 1.44101 7.99466 1.43565C10.1291 1.43565 10.3852 1.43565 11.2283 1.47847C12.0074 1.51058 12.4342 1.63903 12.7117 1.75143C13.0852 1.89593 13.352 2.0672 13.6348 2.34551C13.9123 2.62382 14.0884 2.89142 14.2325 3.26607C14.3445 3.54438 14.4726 3.97255 14.51 4.7486C14.5473 5.59423 14.558 5.84578 14.5633 7.98127C14.5633 10.1168 14.5633 10.3683 14.5206 11.2139C14.4886 11.9953 14.3606 12.4182 14.2485 12.7018C14.1044 13.0765 13.9337 13.3441 13.6509 13.6224C13.3734 13.9007 13.1066 14.0773 12.7331 14.2218C12.4502 14.3342 12.0287 14.4627 11.2496 14.5001C10.4066 14.5376 10.1504 14.5483 8.01601 14.5536C5.8816 14.5536 5.62547 14.5536 4.78237 14.5162M11.3083 3.721C11.3083 4.25086 11.7406 4.67902 12.2688 4.67902C12.7971 4.67902 13.2293 4.2455 13.2293 3.71565C13.2293 3.18579 12.7971 2.75762 12.2635 2.75762C11.7352 2.75762 11.303 3.19114 11.303 3.721M3.89659 8.00803C3.89659 10.2773 5.74286 12.1131 8.01601 12.1077C10.2838 12.1077 12.1248 10.2613 12.1194 7.99197C12.1194 5.72268 10.2732 3.88691 8 3.89227C5.73219 3.89227 3.89126 5.73874 3.89659 8.00803ZM5.33732 8.00268C5.33732 6.53085 6.52726 5.33198 8 5.33198C9.47275 5.33198 10.668 6.52015 10.6734 7.99197C10.6734 9.4638 9.48342 10.6627 8.01067 10.6627C6.53793 10.6627 5.34266 9.4745 5.33732 8.00268Z" fill="url(#instagram-icon-svg-gradient-header-left)"></path> <defs> <linearGradient id="instagram-icon-svg-gradient-header-left" x1="0" y1="0" x2="16" y2="0" gradientUnits="userSpaceOnUse"> <stop stop-color="#ffffff"></stop> <stop offset="0.08" stop-color="#ffffff"></stop> <stop offset="0.24" stop-color="#ffffff"></stop> <stop offset="0.47" stop-color="#ffffff"></stop> <stop offset="0.56" stop-color="#ffffff"></stop> <stop offset="0.69" stop-color="#ffffff"></stop> <stop offset="0.75" stop-color="#ffffff"></stop> <stop offset="0.89" stop-color="#ffffff"></stop> <stop offset="1" stop-color="#ffffff"></stop> </linearGradient> </defs> </svg></a><a href="https://www.facebook.com/Drcompoginis/" target="_blank" rel="noreferrer" class="nav-social-media-icon-container social-media-icon-container-facebook" aria-label="View John M. Compoginis, M.D. INC Facebook Page (Opens in a new tab)"><svg aria-hidden="true" focusable="false" class="nav-social-media-icon social-media-icon-facebook" width="47" height="101" viewB
152ox="0 0 47 101" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M31.3634 100.651V50.6455H44.9161L46.7122 33.4132H31.3634L31.3864 24.7883C31.3864 20.2938 31.8057 17.8856 38.1436 17.8856H46.6162V0.651367H33.0615C16.7802 0.651367 11.0496 9.01088 11.0496 23.069V33.4152H0.900879V50.6475H11.0496V100.651H31.3634Z" fill="url(#facebook-icon-svg-gradient-header-left)"></path> <defs> <linearGradient id="facebook-icon-svg-gradient-header-left" x1="0" y1="0" x2="47" y2="0" gradientUnits="userSpaceOnUse"> <stop stop-color="#ffffff"></stop> <stop offset="0.08" stop-color="#ffffff"></stop> <stop offset="0.24" stop-color="#ffffff"></stop> <stop offset="0.47" stop-color="#ffffff"></stop> <stop offset="0.56" stop-color="#ffffff"></stop> <stop offset="0.69" stop-color="#ffffff"></stop> <stop offset="0.75" stop-color="#ffffff"></stop> <stop offset="0.89" stop-color="#ffffff"></stop> <stop offset="1" stop-color="#ffffff"></stop> </linearGradient> </defs> </svg></a><a href="https://www.youtube.com/@drcompoginis" target="_blank" rel="noreferrer" class="nav-social-media-icon-container social-media-icon-container-youtube" aria-label="View John M. Compoginis, M.D. INC YouTube Page (Opens in a new tab)"><svg aria-hidden="true" focusable="false" class="nav-social-media-icon social-media-icon-youtube" width="98" height="101" viewBox="0 0 98 101" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M23.503 21.7716V39.6931C23.503 41.4348 24.9165 42.8483 26.6582 42.8483C28.3999 42.8483 29.8134 41.4348 29.8134 39.6931V21.7716L41.8031 5.78532C42.8506 4.33393 42.5183 2.3104 41.0669 1.26288C39.6155 0.215353 37.592 0.5477 36.5445 1.99909L26.4479 15.4612L16.5616 1.99909C15.5141 0.606597 13.5368 0.320526 12.1443 1.36805C10.7518 2.41557 10.4658 4.39283 11.5133 5.78532L23.503 21.7716ZM38.4376 20.7619V33.3827C38.4376 38.6119 42.6739 42.8483 47.9031 42.8483C53.1324 42.8483 57.3687 38.6119 57.3687 33.3827V20.7619C57.3687 15.5327 53.1324 11.2964 47.9031 11.2964C42.6739 11.2964 38.4376 15.5327 38.4376 20.7619ZM44.748 20.7619C44.748 19.0203 46.1615 17.6068 47.9031 17.6068C49.6448 17.6068 51.0583 19.0203 51.0583 20.7619V33.3827C51.0583 35.1244 49.6448 36.5379 47.9031 36.5379C46.1615 36.5379 44.748 35.1244 44.748 33.3827V20.7619ZM65.1936 39.4407C67.3559 41.603 70.2966 42.8146 73.355 42.8062C75.3701 42.7852 77.3432 42.2341 79.0764 41.2076C79.6191 42.1878 80.6498 42.7978 81.7689 42.8062C83.5105 42.8062 84.924 41.3927 84.924 39.651V14.4095C84.924 12.6678 83.5105 11.2543 81.7689 11.2543C80.0272 11.2543 78.6137 12.6678 78.6137 14.4095V31.2372C78.6137 34.14 76.2578 36.4958 73.355 36.4958C70.4522 36.4958 68.0964 34.14 68.0964 31.2372V14.4095C68.0964 12.6678 66.6828 11.2543 64.9412 11.2543C63.1995 11.2543 61.786 12.6678 61.786 14.4095V31.2372C61.7776 34.3166 63.0018 37.2741 65.1936 39.4407ZM76.5102 73.3064C76.5102 72.1453 75.5678 71.2029 74.4067 71.2029C73.2456 71.2029 72.3033 72.1453 72.3033 73.3064V75.4098H76.5102V73.3064ZM57.5791 71.2029C56.418 71.2029 55.4756 72.1453 55.4756 73.3064V81.7202C55.4756 82.8813 56.418 83.8237 57.5791 83.8237C58.7402 83.8237 59.6825 82.8813 59.6825 81.7202V73.3064C59.6825 72.1453 58.7402 71.2029 57.5791 71.2029ZM78.6137 50.1683H19.7168C9.26259 50.1683 0.785645 58.6453 0.785645 69.0995V81.7202C0.785645 92.1744 9.26259 100.651 19.7168 100.651H78.6137C89.0679 100.651 97.5448 92.1744 97.5448 81.7202V69.0995C97.5448 58.6453 89.0679 50.1683 78.6137 50.1683ZM32.3375 66.996H26.0272V85.843C26.0272 87.0041 25.0848 87.9465 23.9237 87.9465C22.7626 87.9465 21.8202 87.0041 21.8202 85.843V66.996H15.5099C14.3488 66.996 13.4064 66.0536 13.4064 64.8925C13.4064 63.7314 14.3488 62.7891 15.5099 62.7891H32.3375C33.4987 62.7891 34.441 63.7314 34.441 64.8925C34.441 66.0536 33.4987 66.996 32.3375 66.996ZM46.9776 85.9271C46.986 87.0883 46.0479 88.0348 44.8868 88.0432C44.3104 88.0474 43.7593 87.816 43.3597 87.3996C42.5225 87.8076 41.6012 88.0264 40.6672 88.0306C37.1839 88.0306 34.3569 85.2036 34.3569 81.7202V69.0995C34.3569 67.9384 35.2992 66.996 36.4603 66.996C37.6214 66.996 38.5638 67.9384 38.5638 69.0995V81.7202C38.5638 82.8813 39.5061 83.8237 40.6672 83.8237C41.8284 83.8237 42.7707 82.8813 42.770
1527 81.7202V69.0995C42.7707 67.9384 43.7131 66.996 44.8742 66.996C46.0353 66.996 46.9776 67.9384 46.9776 69.0995V85.9271ZM63.8053 81.7202C63.8053 85.2036 60.9783 88.0306 57.4949 88.0306C56.5315 88.0264 55.5808 87.795 54.7184 87.3575C53.8686 88.1484 52.535 88.0979 51.7441 87.2439C51.3907 86.8611 51.1888 86.3605 51.1845 85.843V60.6015C51.1845 59.4404 52.1269 58.498 53.288 58.498C54.4491 58.498 55.3915 59.4404 55.3915 60.6015V67.5429C56.0646 67.2947 56.7755 67.1685 57.4949 67.1643C60.9783 67.1643 63.8053 69.9913 63.8053 73.4747V81.7202ZM74.7012 88.0306C71.0496 87.8161 68.1595 84.8712 68.0122 81.2154V73.3064C68.0122 69.8231 70.8393 66.996 74.3226 66.996C77.8059 66.996 80.633 69.8231 80.633 73.3064V77.5133C80.633 78.6744 79.6906 79.6168 78.5295 79.6168H72.3033V81.2154C72.4421 82.549 73.4602 83.6218 74.7854 83.8237C75.753 83.8237 77.2674 83.403 77.2674 82.2671C77.2674 81.106 78.2098 80.1637 79.3709 80.1637C80.532 80.1637 81.4744 81.106 81.4744 82.2671C81.2809 85.6537 78.3739 88.2409 74.9873 88.0474C74.92 88.0432 74.8527 88.039 74.7854 88.0306H74.7012Z" fill="url(#youtube-icon-svg-gradient-header-left)"></path> <defs> <linearGradient id="youtube-icon-svg-gradient-header-left" x1="0" y1="0" x2="98" y2="0" gradientUnits="userSpaceOnUse"> <stop stop-color="#ffffff"></stop> <stop offset="0.08" stop-color="#ffffff"></stop> <stop offset="0.24" stop-color="#ffffff"></stop> <stop offset="0.47" stop-color="#ffffff"></stop> <stop offset="0.56" stop-color="#ffffff"></stop> <stop offset="0.69" stop-color="#ffffff"></stop> <stop offset="0.75" stop-color="#ffffff"></stop> <stop offset="0.89" stop-color="#ffffff"></stop> <stop offset="1" stop-color="#ffffff"></stop> </linearGradient> </defs> </svg></a><a href="https://www.yelp.com/biz/john-compoginis-md-newport-beach-2" target="_blank" rel="noreferrer" class="nav-social-media-icon-container social-media-icon-container-yelp" aria-label="View John M. Compoginis, M.D. INC Yelp Page (Opens in a new tab)"><svg aria-hidden="true" focusable="false" class="nav-social-media-icon social-media-icon-yelp" width="75.75" height="101" viewBox="0 0 75.75 101" fill="none" xmlns="http://www.w3.org/2000/svg"> <g fill="url(#yelp-icon-svg-gradient-header-left)"> <path d="M29.457 71.4628L15.631 88.3984C13.685 90.9044 14.614 93.8917 17.466 95.3655L31.986 98.8984C35.2 100.832 38.91 98.7334 39.07 95.6005L39.77 73.1696C39.911 69.099 33.925 67.02 29.457 71.4628Z"></path> <path d="M27.1589 54.7571L6.6536 47.9634C3.7717 46.3325 0.711 49.0197 0.61315 52.9623L0.14648 68.0768C0.0485 71.876 3.3657 74.2866 6.6062 73.1073L28.3768 65.5756C32.861 63.4096 32.9542 57.4714 27.1589 54.7571Z"></path> <path d="M50.6675 57.1624L71.6635 51.2976C73.697 50.49 74.85 46.5158 72.594 43.4578L64.108 31.3795C61.731 28.2921 56.634 28.071 54.288 30.624L42.0335 48.7857C39.015 53.323 42.669 58.336 50.6675 57.1624Z"></path> <path d="M35.5957 5.6778C35.7697 2.9975 32.1927 -0.7654 28.6845 0.1927L12.0592 4.7407C8.4726 5.7126 6.9445 9.9578 9.1072 12.9918L28.1735 46.048C28.3295 46.3163 28.4983 46.5736 28.66 46.812C32.0233 51.2457 37.243 48.9027 38.6653 45.5158C38.872 44.9763 38.9342 44.4733 38.8803 43.983L35.5957 5.6778Z"></path> <path d="M72.469 71.6512L51.3815 65.7875C47.786 64.1554 45.4277 69.3124 48.3437 73.247L61.509 91.3039C63.292 93.8727 66.8777 94.0185 69.181 90.7815L77.412 80.913C79.717 77.6705 78.082 73.141 72.469 71.6512Z"></path> </g> <defs> <linearGradient id="yelp-icon-svg-gradient-header-left" x1="0" y1="0" x2="101" y2="0" gradientUnits="userSpaceOnUse"> <stop stop-color="#ffffff"></stop> <stop offset="0.08" stop-color="#ffffff"></stop> <stop offset="0.24" stop-color="#ffffff"></stop> <stop offset="0.47" stop-color="#ffffff"></stop> <stop offset="0.56" stop-color="#ffffff"></stop> <stop offset="0.69" stop-color="#ffffff"></stop> <stop offset="0.75" stop-color="#ffffff"></stop> <stop offset="0.89" stop-color="#ffffff"></stop> <stop offset="1" stop-color="#ffffff"></stop> </linearGradient> </defs> </svg></a><a href="https://maps.app.goo.gl/CHkgTwCaG5sdUePH6" target="_blank" rel="noreferrer" class="nav-social-media-icon-container social-media-icon-container-googleBusinessProfile" aria-label="View John M. Compoginis, M.D. INC Google Page (Opens in a new tab)"><svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" width="101" height="101" viewB
152ox="0 0 23 23" fill="none" class="nav-social-media-icon social-media-icon-googleBusinessProfile"> <path d="M0.265182 11.5C0.265182 5.4346 5.19978 0.5 11.2652 0.5C13.7148 0.5 16.0334 1.28812 17.9704 2.7792L15.4142 6.09973C14.2165 5.17783 12.7818 4.69048 11.2652 4.69048C7.51041 4.69048 4.45566 7.74523 4.45566 11.5C4.45566 15.2548 7.51041 18.3095 11.2652 18.3095C14.2893 18.3095 16.8593 16.3282 17.7449 13.5952H11.2652V9.40476H22.2652V11.5C22.2652 17.5654 17.3306 22.5 11.2652 22.5C5.19978 22.5 0.265182 17.5654 0.265182 11.5Z" fill="url(#google-icon-svg-gradient-header-left)"></path> <defs> <linearGradient id="google-icon-svg-gradient-header-left" x1="0" y1="0" x2="20" y2="0" gradientUnits="userSpaceOnUse"> <stop stop-color="#ffffff"></stop> <stop offset="0.08" stop-color="#ffffff"></stop> <stop offset="0.24" stop-color="#ffffff"></stop> <stop offset="0.47" stop-color="#ffffff"></stop> <stop offset="0.56" stop-color="#ffffff"></stop> <stop offset="0.69" stop-color="#ffffff"></stop> <stop offset="0.75" stop-color="#ffffff"></stop> <stop offset="0.89" stop-color="#ffffff"></stop> <stop offset="1" stop-color="#ffffff"></stop> </linearGradient> </defs> </svg></a><a href="https://www.realself.com/dr/john-compoginis-pasadena-ca" target="_blank" rel="noreferrer" class="nav-social-media-icon-container social-media-icon-container-realSelf" aria-label="View John M. Compoginis, M.D. INC RealSelf Page (Opens in a new tab)"><svg aria-hidden="true" focusable="false" class="nav-social-media-icon social-media-icon-realSelf" width="101" height="101" viewBox="0 0 101 101" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill="url(#realself-icon-svg-gradient-header-left)" d="M0.151028 70.6487C0.468031 46.3273 8.32098 26.2914 25.343 11.7154C32.164 5.87585 39.8705 2.18154 48.3269 1.02993C55.701 0.0235476 62.8915 0.782794 69.448 5.34081C74.5288 8.87462 77.7382 14.1002 79.0369 20.7907C80.2524 27.0481 78.5865 32.4851 74.8983 37.0737C71.5403 41.2521 67.3995 44.3273 63.4556 47.67C60.6266 50.0675 57.7911 52.4497 55.9 56.0217C54.8746 57.9581 54.7107 60.0294 55.067 62.1594C55.4627 64.5288 57.1089 66.1391 59.2864 66.511C61.5557 66.8983 63.7813 66.5442 65.7577 65.2728C68.5561 63.4715 71.2123 61.3772 73.9495 59.4485C76.28 57.8077 78.534 55.9376 81.0089 54.6663C88.1622 50.9924 95.7812 54.6841 98.7807 63.1174C100.211 67.1378 100.589 71.2194 99.5 75.5379C97.2023 84.6463 92.3794 91.2477 85.307 95.714C82.4168 97.5382 79.4216 99.1484 76.092 99.5C74.6207 99.6554 73.0991 99.658 71.6408 99.4083C69.6295 99.0643 68.1757 96.1777 68.4446 93.5407C68.6872 91.161 69.5508 89.133 71.0484 87.5355C72.417 86.0756 73.9102 84.7762 75.3181 83.3673C76.0898 82.5953 76.855 81.7953 77.5262 80.9087C80.2371 77.3341 78.6849 72.2105 75.8624 70.2028C73.368 68.427 70.6898 68.3123 67.9745 69.413C64.8482 70.6792 62.3515 73.0997 59.8636 75.5405C57.0259 78.3227 54.3368 81.3647 50.9066 83.189C48.0514 84.7074 45.1306 85.2705 42.1814 83.4539C40.4367 82.3788 39.2518 80.6641 38.4188 78.6488C36.5015 74.0092 36.6349 69.2856 38.5784 64.7658C39.794 61.9403 41.3528 59.2906 42.9247 56.702C45.03 53.2395 47.389 49.986 49.4768 46.5133C52.649 41.2394 54.5379 35.4584 54.14 28.857C53.834 23.7665 52.5966 19.1525 49.1751 15.7257C45.6728 12.2199 41.7682 10.7829 37.1268 12.5333C34.0748 13.6823 31.3529 15.3766 28.6202 17.2977C24.2652 20.3627 21.4231 24.7525 19.4314 29.9883C17.5928 34.824 16.4866 39.9757 16.3991 45.242C16.3291 49.4994 16.7642 53.8 17.313 58.0243C17.689 60.9212 18.4017 63.8409 19.4117 66.5212C20.483 69.3646 22.0068 71.9914 23.4672 74.6131C25.5135 78.287 27.6801 81.9456 28.2944 86.3177C28.618 88.6209 28.4103 91.1865 27.879 93.4515C27.2122 96.2974 25.0938 97.9662 22.866 99.1229C14.7135 103.352 6.95677 98.2006 3.43038 90.175C1.26382 85.2425 0.428679 79.9329 0.159773 74.4704C0.0963719 73.2016 0.151028 71.9251 0.151028 70.6512V70.6487ZM51.3001 55.9962C51.2127 55.9606 52.2166 53.6736 52.1291 53.638C51.9521 54.0176 56.7538 69.2652 56.6291 69.6678C55.2606 74.0729 50.4431 66.7454 53.6132 69.6678C53.9105 69.9429 54.3171 70.1595 54.6888 70.1977C55.0014 70.2308 55.4868 70.0703 55.6201 69.8053C55.7557 69.5429 55.6573 68.9416 55.4693 68.6665C55.0451 68.0397 54.5139 67.5098 54.0067 66.9645C51.4947 64.2613 50.6093 60.9517 51.2499 57.0561C51.3067 56.7122 51.2826 56.3529 51.2979 56.0013L51.3001 55.9962ZM51.2728 8.972C51.7866 9.17582 53.1283 7.59427 53.5 7.5C56.4186 6.7433 58.4415 7.86625 61.5 7C59 9.5 53.1158 7.28535 51.2728 8.972ZM75.1607 60.4804C75.2066 60.7326 75.2525 60.9848 75.2962 61.2371C75.6876 61.2626 76.1751 61.474 76.4549 61.2804C78.1974 60.
1520778 79.9004 58.7988 81.5948 57.5046C81.7828 57.3619 81.8265 56.9619 81.938 56.6816C81.6778 56.6357 84.0773 62.3326 81.5948 59.4485C79.5791 60.7275 77.8607 65.7153 75.8624 67.0299L75.1607 60.4804ZM74.1265 88.8902C76.3434 88.5921 82.0522 85.5789 82.0937 83.5559C81.5 89 77 90.5 74.1265 88.8902Z"></path> <defs> <linearGradient id="realself-icon-svg-gradient-header-left" x1="0" y1="0" x2="98" y2="0" gradientUnits="userSpaceOnUse"> <stop stop-color="#ffffff"></stop> <stop offset="0.08" stop-color="#ffffff"></stop> <stop offset="0.24" stop-color="#ffffff"></stop> <stop offset="0.47" stop-color="#ffffff"></stop> <stop offset="0.56" stop-color="#ffffff"></stop> <stop offset="0.69" stop-color="#ffffff"></stop> <stop offset="0.75" stop-color="#ffffff"></stop> <stop offset="0.89" stop-color="#ffffff"></stop> <stop offset="1" stop-color="#ffffff"></stop> </linearGradient> </defs> </svg></a></div> </div> <div class="nav-flex-item nav-logo-container animate fadeIn"> <a class="navbar-brand" href="/" aria-label="Go to johncompoginismd.com homepage"> <div data-gatsby-image-wrapper="" data-initial-width="893" data-initial-height="129" class="gatsby-image-wrapper gatsby-image-wrapper-constrained has-scrolled-logo" style="position: relative !important" id="gatsby-img-kl15936zt"><div class="placeholder-wrapper" style="display:block;"><img alt="" aria-hidden="true" fetchpriority="high" src="data:image/svg+xml;charset=utf-8,%3Csvg height='129' width='893' xmlns='http://www.w3.org/2000/svg' version='1.1'%3E%3C/svg%3E" style="max-width: 100%; display: block; position: static"></div><picture><img data-main-image="" style="object-fit: contain; display: block" decoding="async" loading="eager" fetchpriority="high" class="navbar__logo" alt="John Compoginis Logo" src="/_static_/logos/logo.png"></picture></div>
152<script type="module">document.addEventListener("DOMContentLoaded",()=>{const o=document.querySelectorAll("[data-gatsby-image-wrapper]");if(o)for(const a of o){if(!a)continue;const r=a.querySelector(".placeholder-wrapper");if(!r)continue;const e=a.querySelector("[data-main-image]");if(!e)continue;const c=parseInt(a.getAttribute("data-initial-width")||"0",10),h=parseInt(a.getAttribute("data-initial-height")||"0",10),d=({width:n,height:t})=>{const i=document.createElementNS("http://www.w3.org/2000/svg","svg");return i.setAttribute("height",t),i.setAttribute("width",n),i},s=n=>{const t={width:n.naturalWidth,height:n.naturalHeight};if(t.width!==c||t.height!==h){d(t),r.style.aspectRatio=`${t.width} / ${t.height}`;const i=r.querySelector("img");i&&(i.src=`data:image/svg+xml;charset=utf-8,<svg height='${t.height}' width='${t.width}' xmlns='http://www.w3.org/2000/svg' version='1.1'></svg>`)}};e.complete&&e.naturalWidth?s(e):e.addEventListener("load",()=>{s(e)})}});</script>
152 <div data-gatsby-image-wrapper="" data-initial-width="893" data-initial-height="129" class="gatsby-image-wrapper gatsby-image-wrapper-constrained navbar__logo__scrolled" style id="gatsby-img-5q6idgsup"><div class="placeholder-wrapper" style="display:block;"><img alt="" aria-hidden="true" fetchpriority="high" src="data:image/svg+xml;charset=utf-8,%3Csvg height='129' width='893' xmlns='http://www.w3.org/2000/svg' version='1.1'%3E%3C/svg%3E" style="max-width: 100%; display: block; position: static"></div><picture><img data-main-image="" style="object-fit: contain; display: block" decoding="async" loading="eager" fetchpriority="high" class="navbar__logo" alt="John Compoginis Logo" src="/_static_/logos/scrolled-logo.png"></picture></div> </a> </div> <div class="navbar-links nav-flex-item nav-right-container animate fadeIn" style="justify-content: flex-end"> <div class="nav-right-links"> <a class="nav-link nav-right-link" href="tel:(949) 247-8543"> (949) 247-8543 </a> <p class="nav-right-subtext">Newport Beach, CA</p> </div> <div class="menu-button"><div role="button" tabindex="0" aria-haspopup="menu" aria-expanded="false" aria-controls="site-menu" aria-labelledby="menuButtonLabel"><span></span><span></span><span></span></div><label id="menuButtonLabel">Menu</label></div>
152<script type="module">document.addEventListener("DOMContentLoaded",()=>{const t=document.querySelector(".menu-button");if(!t)return;const n=e=>{e.preventDefault(),document.dispatchEvent(new CustomEvent("toggleNavigation"))};t.addEventListener("click",n),t.addEventListener("keydown",e=>{(e.key==="Enter"||e.key===" ")&&(e.preventDefault(),document.dispatchEvent(new CustomEvent("toggleNavigation")))})});</script>
152 </div> </nav> <menu class="mega-menu"> <div class="mobile-contact-menu"> <ul> <a class="no-menu" href="/consultation/"> Free Consultation </a> <a class="no-menu" href="tel:(949) 247-8543"> (949) 247-8543 </a> </ul> </div> <div class="main-menu"> <ul> <li> <span class="highlight-color no-link title-xs" data-column-id="d1a609d9-625b-4332-b957-fa276afb0add"> Body </span> </li> <li class> <a href="/brazilian-butt-lift/"> Brazilian Butt Lift </a> </li><li class> <a href="/liposuction/"> Liposuction & Lipo 360 </a> </li><li class> <a href="/mommy-makeover/"> Mommy Makeover </a> </li><li class> <a href="/tummy-tuck/"> Tummy Tuck </a> </li><li class> <a href="/labiaplasty/"> Labiaplasty </a> </li><li class> <a href="/post-weight-loss-surgery/"> Post-Weight Loss Surgery </a> </li> </ul><ul> <li> <span class="highlight-color no-link title-xs" data-column-id="2fde5714-34d4-406b-bf86-dcd83b171532"> Breast </span> </li> <li class> <a href="/breast-augmentation/"> Breast Augmentation </a> </li><li class> <a href="/breast-lift/"> Breast Lift </a> </li><li class> <a href="/breast-reduction/"> Breast Reduction </a> </li><li class> <a href="/breast-augmentation-with-lift/"> Breast Aug With Lift </a> </li><li class> <a href="/breast-implant-removal/"> Breast Implant Removal </a> </li><li class> <a href="/breast-implant-revision/"> Breast Implant Revision </a> </li><li class> <a href="/gynecomastia-surgery/"> Gynecomastia </a> </li><li class> <a href="/pec-implants/"> Pec Implants </a> </li> </ul><ul> <li> <span class="highlight-color no-link title-xs" data-column-id="8cd31304-ee00-4869-b3c5-bbfbedb2f4cc"> Face </span> </li> <li class> <a href="/facelift/"> Facelift </a> </li><li class> <a href="/lip-enhancement/"> Lip Enhancement </a> </li><li class> <a href="/rhinoplasty/"> Rhinoplasty </a> </li><li class> <a href="/liquid-facelift/"> Liquid Facelift </a> </li><li class> <a href="/rf-microneedling/"> RF Microneedling </a> </li><li class> <a href="/co2-laser/"> CO2 laser </a> </li> </ul><ul> <li> <span class="highlight-color no-link title-xs" data-column-id="abefa07b-d58c-4389-84a4-a2ad4cb0b749"> Gallery </span> </li> <li class> <a href="/gallery/body/"> Body </a> </li><li class> <a href="/gallery/face/"> Face </a> </li><li class> <a href="/gallery/breast/"> Breast </a> </li><li class> <a href="/gallery/men/"> Men </a> </li> </ul><ul> <li> <span class="highlight-color no-link title-xs" data-column-id="f67c0d9d-e91b-4cee-b41c-cf4c413ac209"> About Us </span> </li> <li class> <a href="/about/meet-the-doctor/"> Meet the Doctor </a> </li><li class> <a href="/about/meet-the-team/"> Meet the Team </a> </li><li class> <a href="/testimonials/"> Testimonials </a> </li><li class> <a href="/resources/financing/"> Financing </a> </li><li class> <a href="/resources/specials/"> Specials </a> </li><li class> <a href="/blog/"> Blog </a> </li> </ul><ul> <li> <span class="highlight-color no-link title-xs" data-column-id="c9a61e3b-37c3-4cba-8760-6311ca226090"> Contact </span> </li> <li class> <a href="/contact/"> Contact Us </a> </li><li class> <a href="/contact/newport-beach/"> Newport Beach </a> </li><li class> <a href="/contact/redlands/"> Redlands </a> </li> </ul> </div> <a id="adaWidget" tabindex="0" class="menuAda" aria-label="Open accessibility menu" role="button">
153Accessibility <svg width="60" height="60" viewBox="0 0 60 60" fill="none" xmlns="http://www.w3.org/2000/svg" role="img"> <title>Accessibility icon</title> <g clip-path="url(#clip0_3_2)"> <path d="M30 4.42857C44.1227 4.42857 55.5714 15.8773 55.5714 30C55.5714 44.1227 44.1227 55.5714 30 55.5714C15.8773 55.5714 4.42857 44.1227 4.42857 30C4.42857 15.8773 15.8773 4.42857 30 4.42857ZM30 6.42857C16.9819 6.42857 6.42857 16.9819 6.42857 30C6.42857 43.0181 16.9819 53.5714 30 53.5714C43.0181 53.5714 53.5714 43.0181 53.5714 30C53.5714 16.9819 43.0181 6.42857 30 6.42857ZM40.5936 24.6361C40.8208 24.6942 41.0323 24.8028 41.2129 24.9537C41.3927 25.1041 41.5373 25.2927 41.6362 25.506C41.7349 25.7185 41.7857 25.9505 41.7857 26.1965C41.778 26.578 41.6395 26.9452 41.3936 27.2353C41.1464 27.5268 40.8059 27.7221 40.4376 27.7857C38.1922 28.2018 35.9244 28.4828 33.6481 28.6271C33.5049 28.6367 33.3651 28.6759 33.2369 28.7424C33.1082 28.8091 32.994 28.9019 32.9012 29.0154C32.8079 29.1294 32.7383 29.2618 32.6967 29.4044C32.6759 29.4759 32.6623 29.5493 32.6557 29.6152L32.6511 29.7072L32.6599 29.8496L32.8523 31.5976C33.0926 33.7484 33.5345 35.8702 34.1701 37.9296L34.4174 38.6989L34.6846 39.4673L35.9271 42.8464C35.9992 43.0441 36.0318 43.2542 36.023 43.4646C36.0141 43.6751 35.964 43.8817 35.8755 44.0727C35.7867 44.2639 35.6611 44.4355 35.5059 44.5773C35.3502 44.7196 35.1677 44.829 34.99 44.8912C34.8134 44.9616 34.6253 44.9985 34.4204 45C34.1148 44.9943 33.8175 44.8987 33.5651 44.7253C33.4239 44.6283 33.2998 44.5091 33.189 44.3581L33.0827 44.196L33.0074 44.0456L32.6902 43.3563C31.8321 41.4806 31.0485 39.6428 30.3336 37.8221L30.0025 36.9627L29.5751 38.0696C29.3404 38.6637 29.0998 39.2561 28.8537 39.8465L28.4802 40.7305L27.9044 42.0505L27.3109 43.3601L27.0273 43.9426C26.881 44.3389 26.585 44.6608 26.2035 44.837C25.8203 45.0139 25.3832 45.0288 24.9892 44.8784C24.5966 44.7286 24.2796 44.4272 24.1073 44.0414C23.9886 43.7757 23.9447 43.4837 23.9834 43.1769L24.0166 42.9911L24.0668 42.8262L25.3079 39.4507C26.0439 37.4198 26.5852 35.3222 26.9239 33.1917L27.0415 32.3912L27.1413 31.5772L27.3403 29.8382C27.3582 29.6889 27.346 29.5376 27.3045 29.3935C27.2631 29.2497 27.1935 29.1162 27.1 29.0012C27.007 28.8867 26.8923 28.7929 26.7631 28.7253C26.6343 28.658 26.4937 28.6182 26.3535 28.6083C24.0561 28.4627 21.7692 28.1774 19.507 27.7543C19.3016 27.7166 19.1058 27.
1536379 18.9308 27.5231C18.7564 27.4085 18.6063 27.2602 18.489 27.0868C18.3721 26.9139 18.2902 26.7195 18.2479 26.5149C18.2055 26.3104 18.2035 26.0993 18.2404 25.902C18.2758 25.6952 18.3515 25.4975 18.4633 25.3202C18.5754 25.1425 18.7216 24.9892 18.8933 24.869C19.0655 24.7486 19.26 24.6643 19.4652 24.6211C19.6707 24.5779 19.8826 24.5768 20.0823 24.6167C26.6344 25.8478 33.3529 25.8478 39.898 24.618C40.1283 24.5717 40.366 24.5779 40.5936 24.6361ZM32.8056 16.183C34.352 17.7552 34.352 20.3006 32.8056 21.8729C31.2543 23.4501 28.7353 23.4501 27.184 21.8729C25.6376 20.3007 25.6376 17.7552 27.184 16.183C28.7353 14.6057 31.2543 14.6057 32.8056 16.183Z" fill="white"></path> </g> <defs> <clipPath id="clip0_3_2"> <rect width="60" height="60" fill="white"></rect> </clipPath> </defs> </svg> </a> <div class="mobile-social-icons"><a href="https://www.instagram.com/drcompoginis/" target="_blank" rel="noreferrer" class="nav-social-media-icon-container social-media-icon-container-instagram" aria-label="View John M. Compoginis, M.D. INC Instagram Page (Opens in a new tab)"><svg aria-hidden="true" focusable="false" class="nav-social-media-icon social-media-icon-instagram" width="100" height="100" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M4.69166 0.0548132C3.8379 0.0922779 3.25627 0.231432 2.74935 0.42946C2.22108 0.63284 1.77819 0.911149 1.3353 1.35537C0.88707 1.7996 0.620268 2.24917 0.412163 2.77368C0.21473 3.28213 0.0813297 3.86551 0.0439775 4.71649C0.00662526 5.56747 -0.00404779 5.84043 0.00128825 8.01338C0.00128825 10.1863 0.0119595 10.4593 0.0546478 11.3103C0.097336 12.1613 0.230738 12.7393 0.433508 13.2477C0.636277 13.7722 0.91375 14.2218 1.35664 14.666C1.79953 15.1103 2.24776 15.3832 2.77603 15.5866C3.28295 15.7846 3.86458 15.9184 4.71834 15.9559C5.57211 15.9934 5.84424 16.0041 8.01601 15.9987C10.1878 15.9987 10.4599 15.988 11.3137 15.9452C12.1674 15.9024 12.7437 15.7686 13.256 15.5705C13.7789 15.3672 14.2272 15.0889 14.67 14.6446C15.1129 14.2004 15.3851 13.7508 15.5878 13.2263C15.7853 12.7179 15.9187 12.1345 15.956 11.2835C15.9934 10.4272 16.004 10.1596 15.9987 7.98662C15.9987 5.81367 15.9827 5.54071 15.9454 4.68973C15.9027 3.83875 15.7693 3.25537 15.5718 2.74692C15.3637 2.22241 15.0916 1.77819 14.6487 1.33396C14.2005 0.88974 13.7522 0.616783 13.2293 0.413404C12.7224 0.215376 12.1408 0.0815737 11.287 0.044109C10.4332 0.00664437 10.1611 -0.00405991 7.98933 0.00129218C5.81756 0.00129218 5.54543 0.0119965 4.69166 0.0548132ZM4.78771 14.5162C4.00865 14.4841 3.58177 14.3503 3.29896 14.2432C2.92543 14.0987 2.65863 13.9274 2.37582 13.6438C2.09301 13.3655 1.92226 13.0979 1.77819 12.7232C1.66613 12.4396 1.53807 12.0167 1.50071 11.2407C1.46336 10.3951 1.45269 10.1435 1.44735 8.00803C1.44735 5.87254 1.44735 5.62099 1.49004 4.77536C1.52206 3.99396 1.65546 3.57114 1.76218 3.28748C1.90625 2.91283 2.07701 2.64523 2.35982 2.36692C2.63729 2.08861 2.90409 1.91199 3.27761 1.76748C3.56042 1.65509 3.98197 1.52664 4.76103 1.48917C5.60412 1.45171 5.86025 1.44101 7.99466 1.43565C10.1291 1.43565 10.3852 1.43565 11.2283 1.47847C12.0074 1.51058 12.4342 1.63903 12.7117 1.75143C13.0852 1.89593 13.352 2.0672 13.6348 2.34551C13.9123 2.62382 14.0884 2.89142 14.2325 3.26607C14.3445 3.54438 14.4726 3.97255 14.51 4.7486C14.5473 5.59423 14.558 5.84578 14.5633 7.98127C14.5633 10.1168 14.5633 10.3683 14.5206 11.2139C14.4886 11.9953 14.3606 12.4182 14.2485 12.7018C14.1044 13.0765 13.9337 13.3441 13.6509 13.6224C13.3734 13.9007 13.1066 14.0773 12.7331 14.2218C12.4502 14.3342 12.0287 14.4627 11.2496 14.5001C10.4066 14.5376 10.1504 14.5483 8.01601 14.5536C5.8816 14.5536 5.62547 14.5536 4.78237 14.5162M11.3083 3.721C11.3083 4.25086 11.7406 4.67902 12.2688 4.67902C12.7971 4.67902 13.2293 4.2455 13.2293 3.71565C13.2293 3.18579 12.7971 2.75762 12.2635 2.75762C11.7352 2.75762 11.303 3.19114 11.303 3.721M3.89659 8.00803C3.89659 10.2773 5.74286 12.1131 8.01601 12.1077C10.2838 12.1077 12.1248 10.2613 12.1194 7.99197C12.1194 5.72268 10.2732 3.88691 8 3.89227C5.73219 3.89227 3.89126 5.73874 3.89659 8.00803ZM5.33732 8.00268C5.33732 6.53085 6.52726 5.33198 8 5.33198C9.47275 5.33198 10.668 6.52015 10.6734 7.99197C10.6734 9.4638 9.48342 10.6627 8.01067 10.6627C6.53793 10.6627 5.34266 9.4745 5.33732 8.00268Z"></path> <defs> <linearGradient id="instagram-icon-svg-gradient-" x1="0" y1="0" x2="16" y2="0" gradientUnits="userSpaceOnUse"> <stop stop-color="#ffffff"></stop> <stop offset="0.08" stop-color="#ffffff"></stop> <stop offset="0.24" stop-color="#ffffff"></stop> <stop offset="0.47" stop-color="#ffffff"></stop> <stop offset="0.56" stop-color="#ffffff"></stop> <stop offset="0.69" stop-color="#ffffff"></stop> <stop offset="0.75" stop-color="#ffffff"></stop> <stop offset="0.89" stop-color="#ffffff"></stop> <stop offset="1" stop-color="#ffffff"></stop> </linearGradient> </defs> </svg></a><a href="https://www.facebook.com/Drcompoginis/" target="_blank" rel="noreferrer" class="nav-social-media-icon-container social-media-icon-container-facebook" aria-label="View John M. Compoginis, M.D. INC Facebook Page (Opens in a new tab)"><svg aria-hidden="true" focusable="false" class="nav-social-media-icon social-media-icon-facebook" width="47" height="101" viewB
153ox="0 0 47 101" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M31.3634 100.651V50.6455H44.9161L46.7122 33.4132H31.3634L31.3864 24.7883C31.3864 20.2938 31.8057 17.8856 38.1436 17.8856H46.6162V0.651367H33.0615C16.7802 0.651367 11.0496 9.01088 11.0496 23.069V33.4152H0.900879V50.6475H11.0496V100.651H31.3634Z"></path> <defs> <linearGradient id="facebook-icon-svg-gradient-" x1="0" y1="0" x2="47" y2="0" gradientUnits="userSpaceOnUse"> <stop stop-color="#ffffff"></stop> <stop offset="0.08" stop-color="#ffffff"></stop> <stop offset="0.24" stop-color="#ffffff"></stop> <stop offset="0.47" stop-color="#ffffff"></stop> <stop offset="0.56" stop-color="#ffffff"></stop> <stop offset="0.69" stop-color="#ffffff"></stop> <stop offset="0.75" stop-color="#ffffff"></stop> <stop offset="0.89" stop-color="#ffffff"></stop> <stop offset="1" stop-color="#ffffff"></stop> </linearGradient> </defs> </svg></a><a href="https://www.youtube.com/@drcompoginis" target="_blank" rel="noreferrer" class="nav-social-media-icon-container social-media-icon-container-youtube" aria-label="View John M. Compoginis, M.D. INC YouTube Page (Opens in a new tab)"><svg aria-hidden="true" focusable="false" class="nav-social-media-icon social-media-icon-youtube" width="98" height="101" viewBox="0 0 98 101" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M23.503 21.7716V39.6931C23.503 41.4348 24.9165 42.8483 26.6582 42.8483C28.3999 42.8483 29.8134 41.4348 29.8134 39.6931V21.7716L41.8031 5.78532C42.8506 4.33393 42.5183 2.3104 41.0669 1.26288C39.6155 0.215353 37.592 0.5477 36.5445 1.99909L26.4479 15.4612L16.5616 1.99909C15.5141 0.606597 13.5368 0.320526 12.1443 1.36805C10.7518 2.41557 10.4658 4.39283 11.5133 5.78532L23.503 21.7716ZM38.4376 20.7619V33.3827C38.4376 38.6119 42.6739 42.8483 47.9031 42.8483C53.1324 42.8483 57.3687 38.6119 57.3687 33.3827V20.7619C57.3687 15.5327 53.1324 11.2964 47.9031 11.2964C42.6739 11.2964 38.4376 15.5327 38.4376 20.7619ZM44.748 20.7619C44.748 19.0203 46.1615 17.6068 47.9031 17.6068C49.6448 17.6068 51.0583 19.0203 51.0583 20.7619V33.3827C51.0583 35.1244 49.6448 36.5379 47.9031 36.5379C46.1615 36.5379 44.748 35.1244 44.748 33.3827V20.7619ZM65.1936 39.4407C67.3559 41.603 70.2966 42.8146 73.355 42.8062C75.3701 42.7852 77.3432 42.2341 79.0764 41.2076C79.6191 42.1878 80.6498 42.7978 81.7689 42.8062C83.5105 42.8062 84.924 41.3927 84.924 39.651V14.4095C84.924 12.6678 83.5105 11.2543 81.7689 11.2543C80.0272 11.2543 78.6137 12.6678 78.6137 14.4095V31.2372C78.6137 34.14 76.2578 36.4958 73.355 36.4958C70.4522 36.4958 68.0964 34.14 68.0964 31.2372V14.4095C68.0964 12.6678 66.6828 11.2543 64.9412 11.2543C63.1995 11.2543 61.786 12.6678 61.786 14.4095V31.2372C61.7776 34.3166 63.0018 37.2741 65.1936 39.4407ZM76.5102 73.3064C76.5102 72.1453 75.5678 71.2029 74.4067 71.2029C73.2456 71.2029 72.3033 72.1453 72.3033 73.3064V75.4098H76.5102V73.3064ZM57.5791 71.2029C56.418 71.2029 55.4756 72.1453 55.4756 73.3064V81.7202C55.4756 82.8813 56.418 83.8237 57.5791 83.8237C58.7402 83.8237 59.6825 82.8813 59.6825 81.7202V73.3064C59.6825 72.1453 58.7402 71.2029 57.5791 71.2029ZM78.6137 50.1683H19.7168C9.26259 50.1683 0.785645 58.6453 0.785645 69.0995V81.7202C0.785645 92.1744 9.26259 100.651 19.7168 100.651H78.6137C89.0679 100.651 97.5448 92.1744 97.5448 81.7202V69.0995C97.5448 58.6453 89.0679 50.1683 78.6137 50.1683ZM32.3375 66.996H26.0272V85.843C26.0272 87.0041 25.0848 87.9465 23.9237 87.9465C22.7626 87.9465 21.8202 87.0041 21.8202 85.843V66.996H15.5099C14.3488 66.996 13.4064 66.0536 13.4064 64.8925C13.4064 63.7314 14.3488 62.7891 15.5099 62.7891H32.3375C33.4987 62.7891 34.441 63.7314 34.441 64.8925C34.441 66.0536 33.4987 66.996 32.3375 66.996ZM46.9776 85.9271C46.986 87.0883 46.0479 88.0348 44.8868 88.0432C44.3104 88.0474 43.7593 87.816 43.3597 87.3996C42.5225 87.8076 41.6012 88.0264 40.6672 88.0306C37.1839 88.0306 34.3569 85.2036 34.3569 81.7202V69.0995C34.3569 67.9384 35.2992 66.996 36.4603 66.996C37.6214 66.996 38.5638 67.9384 38.5638 69.0995V81.7202C38.5638 82.8813 39.5061 83.8237 40.6672 83.8237C41.8284 83.8237 42.7707 82.8813 42.7707 81.7202V69.0995C42.7707 67.9384 43.7131 66.996 44.8742 66.996C46.0353 66.996 46.9776 67.9384 46.9776 69.0995V85.9271ZM63.8053 81.7202C63.8053 85.2036 60.9783 88.0306 57.4949 88.0306C56.5315 88.02
15364 55.5808 87.795 54.7184 87.3575C53.8686 88.1484 52.535 88.0979 51.7441 87.2439C51.3907 86.8611 51.1888 86.3605 51.1845 85.843V60.6015C51.1845 59.4404 52.1269 58.498 53.288 58.498C54.4491 58.498 55.3915 59.4404 55.3915 60.6015V67.5429C56.0646 67.2947 56.7755 67.1685 57.4949 67.1643C60.9783 67.1643 63.8053 69.9913 63.8053 73.4747V81.7202ZM74.7012 88.0306C71.0496 87.8161 68.1595 84.8712 68.0122 81.2154V73.3064C68.0122 69.8231 70.8393 66.996 74.3226 66.996C77.8059 66.996 80.633 69.8231 80.633 73.3064V77.5133C80.633 78.6744 79.6906 79.6168 78.5295 79.6168H72.3033V81.2154C72.4421 82.549 73.4602 83.6218 74.7854 83.8237C75.753 83.8237 77.2674 83.403 77.2674 82.2671C77.2674 81.106 78.2098 80.1637 79.3709 80.1637C80.532 80.1637 81.4744 81.106 81.4744 82.2671C81.2809 85.6537 78.3739 88.2409 74.9873 88.0474C74.92 88.0432 74.8527 88.039 74.7854 88.0306H74.7012Z"></path> <defs> <linearGradient id="youtube-icon-svg-gradient-" x1="0" y1="0" x2="98" y2="0" gradientUnits="userSpaceOnUse"> <stop stop-color="#ffffff"></stop> <stop offset="0.08" stop-color="#ffffff"></stop> <stop offset="0.24" stop-color="#ffffff"></stop> <stop offset="0.47" stop-color="#ffffff"></stop> <stop offset="0.56" stop-color="#ffffff"></stop> <stop offset="0.69" stop-color="#ffffff"></stop> <stop offset="0.75" stop-color="#ffffff"></stop> <stop offset="0.89" stop-color="#ffffff"></stop> <stop offset="1" stop-color="#ffffff"></stop> </linearGradient> </defs> </svg></a><a href="https://www.yelp.com/biz/john-compoginis-md-newport-beach-2" target="_blank" rel="noreferrer" class="nav-social-media-icon-container social-media-icon-container-yelp" aria-label="View John M. Compoginis, M.D. INC Yelp Page (Opens in a new tab)"><svg aria-hidden="true" focusable="false" class="nav-social-media-icon social-media-icon-yelp" width="75.75" height="101" viewBox="0 0 75.75 101" fill="none" xmlns="http://www.w3.org/2000/svg"> <g> <path d="M29.457 71.4628L15.631 88.3984C13.685 90.9044 14.614 93.8917 17.466 95.3655L31.986 98.8984C35.2 100.832 38.91 98.7334 39.07 95.6005L39.77 73.1696C39.911 69.099 33.925 67.02 29.457 71.4628Z"></path> <path d="M27.1589 54.7571L6.6536 47.9634C3.7717 46.3325 0.711 49.0197 0.61315 52.9623L0.14648 68.0768C0.0485 71.876 3.3657 74.2866 6.6062 73.1073L28.3768 65.5756C32.861 63.4096 32.9542 57.4714 27.1589 54.7571Z"></path> <path d="M50.6675 57.1624L71.6635 51.2976C73.697 50.49 74.85 46.5158 72.594 43.4578L64.108 31.3795C61.731 28.2921 56.634 28.071 54.288 30.624L42.0335 48.7857C39.015 53.323 42.669 58.336 50.6675 57.1624Z"></path> <path d="M35.5957 5.6778C35.7697 2.9975 32.1927 -0.7654 28.6845 0.1927L12.0592 4.7407C8.4726 5.7126 6.9445 9.9578 9.1072 12.9918L28.1735 46.048C28.3295 46.3163 28.4983 46.5736 28.66 46.812C32.0233 51.2457 37.243 48.9027 38.6653 45.5158C38.872 44.9763 38.9342 44.4733 38.8803 43.983L35.5957 5.6778Z"></path> <path d="M72.469 71.6512L51.3815 65.7875C47.786 64.1554 45.4277 69.3124 48.3437 73.247L61.509 91.3039C63.292 93.8727 66.8777 94.0185 69.181 90.7815L77.412 80.913C79.717 77.6705 78.082 73.141 72.469 71.6512Z"></path> </g> <defs> <linearGradient id="yelp-icon-svg-gradient-" x1="0" y1="0" x2="101" y2="0" gradientUnits="userSpaceOnUse"> <stop stop-color="#ffffff"></stop> <stop offset="0.08" stop-color="#ffffff"></stop> <stop offset="0.24" stop-color="#ffffff"></stop> <stop offset="0.47" stop-color="#ffffff"></stop> <stop offset="0.56" stop-color="#ffffff"></stop> <stop offset="0.69" stop-color="#ffffff"></stop> <stop offset="0.75" stop-color="#ffffff"></stop> <stop offset="0.89" stop-color="#ffffff"></stop> <stop offset="1" stop-color="#ffffff"></stop> </linearGradient> </defs> </svg></a><a href="https://maps.app.goo.gl/CHkgTwCaG5sdUePH6" target="_blank" rel="noreferrer" class="nav-social-media-icon-container social-media-icon-container-googleBusinessProfile" aria-label="View John M. Compoginis, M.D. INC Google Page (Opens in a new tab)"><svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" width="101" height="101" viewBox="0 0 23 23" fill="none" class="nav-social-media-icon social-media-icon-googleBusinessProfile"> <path d="M0.265182 11.5C0.265182 5.4346 5.19978 0.5 11.2652 0.5C13.7148 0.5 16.0334 1.28812 17.9704 2.7792L15.4142 6.09973C14.2165 5.17783 12.7818 4.69048 11.2652 4.69048C7.51041 4.69048 4.45566 7.74523 4.45566 11.5C4.45566 15.2548 7.51041 18.3095 11.2652 18.3095C14.2893 18.3095 16.8593 16.3282 17.7449 13.5952H11.2652V9.40476H22.2652V11.5C22.2652 17.5654 17.3306 22.5 11.2652 22.5C5.19978 22.5 0.265182 17.5654 0.265182 11.5Z"></path> <defs> <linearGradient id="google-icon-svg-gradient-" x1="0" y1="0" x2="20" y2="0" gradientUnits="userSpaceOnUse"> <stop stop-color="#ffffff"></stop> <stop offset="0.08" stop-color="#ffffff"></stop> <stop offset="0.24" stop-color="#ffffff"></stop> <stop offset="0.47" stop-color="#ffffff"></stop> <stop offset="0.56" stop-color="#ffffff"></stop> <stop offset="0.69" stop-color="#ffffff"></stop> <stop offset="0.75" stop-color="#ffffff"></stop> <stop offset="0.89" stop-color="#ffffff"></stop> <stop offset="1" stop-color="#ffffff"></stop> </linearGradient> </defs> </svg></a><a href="https://www.realself.com/dr/john-compoginis-pasadena-ca" target="_blank" rel="noreferrer" class="nav-social-media-icon-container social-media-icon-container-realSelf" aria-label="View John M. Compoginis, M.D. INC RealSelf Page (Opens in a new tab)"><svg aria-hidden="true" focusable="false" class="nav-social-media-icon social-media-icon-realSelf" width="101" height="101" viewB
153ox="0 0 101 101" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M0.151028 70.6487C0.468031 46.3273 8.32098 26.2914 25.343 11.7154C32.164 5.87585 39.8705 2.18154 48.3269 1.02993C55.701 0.0235476 62.8915 0.782794 69.448 5.34081C74.5288 8.87462 77.7382 14.1002 79.0369 20.7907C80.2524 27.0481 78.5865 32.4851 74.8983 37.0737C71.5403 41.2521 67.3995 44.3273 63.4556 47.67C60.6266 50.0675 57.7911 52.4497 55.9 56.0217C54.8746 57.9581 54.7107 60.0294 55.067 62.1594C55.4627 64.5288 57.1089 66.1391 59.2864 66.511C61.5557 66.8983 63.7813 66.5442 65.7577 65.2728C68.5561 63.4715 71.2123 61.3772 73.9495 59.4485C76.28 57.8077 78.534 55.9376 81.0089 54.6663C88.1622 50.9924 95.7812 54.6841 98.7807 63.1174C100.211 67.1378 100.589 71.2194 99.5 75.5379C97.2023 84.6463 92.3794 91.2477 85.307 95.714C82.4168 97.5382 79.4216 99.1484 76.092 99.5C74.6207 99.6554 73.0991 99.658 71.6408 99.4083C69.6295 99.0643 68.1757 96.1777 68.4446 93.5407C68.6872 91.161 69.5508 89.133 71.0484 87.5355C72.417 86.0756 73.9102 84.7762 75.3181 83.3673C76.0898 82.5953 76.855 81.7953 77.5262 80.9087C80.2371 77.3341 78.6849 72.2105 75.8624 70.2028C73.368 68.427 70.6898 68.3123 67.9745 69.413C64.8482 70.6792 62.3515 73.0997 59.8636 75.5405C57.0259 78.3227 54.3368 81.3647 50.9066 83.189C48.0514 84.7074 45.1306 85.2705 42.1814 83.4539C40.4367 82.3788 39.2518 80.6641 38.4188 78.6488C36.5015 74.0092 36.6349 69.2856 38.5784 64.7658C39.794 61.9403 41.3528 59.2906 42.9247 56.702C45.03 53.2395 47.389 49.986 49.4768 46.5133C52.649 41.2394 54.5379 35.4584 54.14 28.857C53.834 23.7665 52.5966 19.1525 49.1751 15.7257C45.6728 12.2199 41.7682 10.7829 37.1268 12.5333C34.0748 13.6823 31.3529 15.3766 28.6202 17.2977C24.2652 20.3627 21.4231 24.7525 19.4314 29.9883C17.5928 34.824 16.4866 39.9757 16.3991 45.242C16.3291 49.4994 16.7642 53.8 17.313 58.0243C17.689 60.9212 18.4017 63.8409 19.4117 66.5212C20.483 69.3646 22.0068 71.9914 23.4672 74.6131C25.5135 78.287 27.6801 81.9456 28.2944 86.3177C28.618 88.6209 28.4103 91.1865 27.879 93.4515C27.2122 96.2974 25.0938 97.9662 22.866 99.1229C14.7135 103.352 6.95677 98.2006 3.43038 90.175C1.26382 85.2425 0.428679 79.9329 0.159773 74.4704C0.0963719 73.2016 0.151028 71.9251 0.151028 70.6512V70.6487ZM51.3001 55.9962C51.2127 55.9606 52.2166 53.6736 52.1291 53.638C51.9521 54.0176 56.7538 69.2652 56.6291 69.6678C55.2606 74.0729 50.4431 66.7454 53.6132 69.6678C53.9105 69.9429 54.3171 70.1595 54.6888 70.1977C55.0014 70.2308 55.4868 70.0703 55.6201 69.8053C55.7557 69.5429 55.6573 68.9416 55.4693 68.6665C55.0451 68.0397 54.5139 67.5098 54.0067 66.9645C51.4947 64.2613 50.6093 60.9517 51.2499 57.0561C51.3067 56.7122 51.2826 56.3529 51.2979 56.0013L51.3001 55.9962ZM51.2728 8.972C51.7866 9.17582 53.1283 7.59427 53.5 7.5C56.4186 6.7433 58.4415 7.86625 61.5 7C59 9.5 53.1158 7.28535 51.2728 8.972ZM75.1607 60.4804C75.2066 60.7326 75.2525 60.9848 75.2962 61.2371C75.6876 61.2626 76.1751 61.474 76.4549 61.2804C78.1974 60.0778 79.9004 58.7988 81.5948 57.5046C81.7828 57.3619 81.8265 56.9619 81.938 56.6816C81.6778 56.6357 84.0773 62.3326 81.5948 59.4485C79.5791 60.7275 77.8607 65.7153 75.8624 67.0299L75.1607 60.4804ZM74.1265 88.8902C76.3434 88.5921 82.0522 85.5789 82.0937 83.5559C81.5 89 77 90.5 74.1265 88.8902Z"></path> <defs> <linearGradient id="realself-icon-svg-gradient-" x1="0" y1="0" x2="98" y2="0" gradientUnits="userSpaceOnUse"> <stop stop-color="#ffffff"></stop> <stop offset="0.08" stop-color="#ffffff"></stop> <stop offset="0.24" stop-color="#ffffff"></stop> <stop offset="0.47" stop-color="#ffffff"></stop> <stop offset="0.56" stop-color="#ffffff"></stop> <stop offset="0.69" stop-color="#ffffff"></stop> <stop offset="0.75" stop-color="#ffffff"></stop> <stop offset="0.89" stop-color="#ffffff"></stop> <stop offset="1" stop-color="#ffffff"></stop> </linearGradient> </defs> </svg></a></div> </menu> </section> <div class="mobile-cta"> <a class="mobile-cta-right-link" href="tel:(949) 247-8543"> (949) 247-8543 </a><a class="mobile-cta-left-link" href="/consultation/"> Free Consultation </a> </div> <div class="overlay"></div> <div class="modal"> <div class="modal-background"></div> <div class="modal-content"></div> <button class="modal-close is-large" aria-label="close"></button> </div>
153<script type="module">document.addEventListener("DOMContentLoaded",()=>{let n="",i="",a=!1;window.innerWidth>840&&document.querySelectorAll(".navigation-image-container").forEach(e=>{e.setAttribute("loading","eager")});const l=()=>{const e=document.querySelector(".header"),t=document.querySelector("body"),o=document.querySelector("html"),r=document.querySelector(".menu-button"),u=document.querySelector(".mega-menu"),s=document.querySelector(".overlay");e&&t&&r&&u&&s&&o&&(a=!a,e.classList.toggle("open",a),t.classList.toggle("navigation-open",a),o.classList.toggle("open",a),r.classList.toggle("is-active",a),r.setAttribute("aria-expanded",a.toString()),u.classList.toggle("is-active",a),s.classList.toggle("is-active",a))},c=()=>{document.querySelectorAll(".top-menu li").forEach(e=>{const t=e.querySelector("a[data-page-id]");if(t){const o=t.getAttribute("data-page-id");e.classList.toggle("active",o===n)}}),document.querySelectorAll(".main-menu").forEach(e=>{const t=e.getAttribute("data-page-id");e.classList.toggle("active",t===n)}),document.querySelectorAll(".highlight-color[data-column-id]").forEach(e=>{const t=e.getAttribute("data-column-id");e.parentElement?.classList.toggle("active",t===i)})},d=()=>{const e=window.innerWidth;if(document.querySelector(".top-menu")?.classList.contains("active")||document.querySelector(".top-menu")?.classList.add("active"),e<1024)n="",a&&l();else{const t=document.querySelectorAll("[data-page-id]");t.length>1&&(document.querySelector(".main-menu .current-page")?n=document.querySelector(".main-menu .current-page")?.closest(".main-menu")?.getAttribute("data-page-id"):n=t[0].getAttribute("data-page-id")||"")}c()};document.addEventListener("toggleNavigation",()=>{l()}),document.querySelector(".menu-back")?.addEventListener("click",()=>{n="",i="",document.querySelector(".top-menu")?.classList.add("active"),c()}),document.querySelectorAll(".top-menu a[data-page-id]").forEach(e=>{e.addEventListener("click",t=>{t.preventDefault(),document.querySelector(".top-menu")?.classList.remove("active"),n=e.getAttribute("data-page-id")||"",c()})}),document.querySelectorAll(".highlight-color[data-column-id]").forEach(e=>{e.addEventListener("click",()=>{i=e.getAttribute("data-column-id")||"",c()})}),document.querySelector(".overlay")?.addEventListener("click",()=>{a&&l()}),window.addEventListener("resize",d),d()});</script>
153
153<script>(function(){const serializedData = {"navLinks":"{\"navLeftLinkText\":\"Free Consultation\",\"navLeftLinkText2\":\"Virtual Consultation\",\"navLeftLinkUrl\":\"/consultation/\",\"navLeftLinkUrl2\":\"/resources/virtual-consultation/\",\"navLeftSubtext\":\"\",\"navRightLinkText\":\"(949) 247-8543\",\"navRightLinkText2\":\"\",\"navRightLinkUrl\":\"tel:(949) 247-8543\",\"navRightLinkUrl2\":\"\",\"navRightSubtext\":\"Newport Beach, CA\",\"navRightSocials\":false,\"navLeftSocials\":true,\"mobileCtaLinks\":[]}","locationData":null}; 154const domain = "johncompoginismd.com"; 155const assetsBucket = "influx-site-assets"; 156const siteId = "cb0e6891-3e32-4b7e-a98c-24e3098b197c"; 157 158function getLocalSrcClient(src) { 159 if (!src || typeof src !== "string") { 160 return ""; 161 } 162 163 const normalizedSrc = src.trim(); 164 const queryStringIndex = normalizedSrc.indexOf("?"); 165 const srcWithoutQueryString = queryStringIndex === -1 ? normalizedSrc : normalizedSrc.slice(0, queryStringIndex); 166 const queryString = queryStringIndex === -1 ? "" : normalizedSrc.slice(queryStringIndex); 167 168 let matchKey = null;
169 let staticPrefix = "/" + "_static_"; 170 171 if (srcWithoutQueryString.startsWith(staticPrefix + "/")) { 172 return `${srcWithoutQueryString}${queryString}`; 173 } 174 175 // Determine the match key and its corresponding static prefix 176 if (srcWithoutQueryString && domain && srcWithoutQueryString.includes(`/${domain}/`)) { 177 matchKey = domain; 178 } else if (srcWithoutQueryString && siteId && srcWithoutQueryString.includes(`/${siteId}/`)) { 179 matchKey = siteId; 180 } 181 182 const baseImageUrl = 183 srcWithoutQueryString && matchKey && assetsBucket && srcWithoutQueryString.includes(assetsBucket) && srcWithoutQueryString.split(matchKey).length > 1 184 ? `${staticPrefix}${srcWithoutQueryString.split(matchKey)[1]}` 185 : srcWithoutQueryString; 186 187 return `${baseImageUrl}${queryString}`; 188 } 189 190 // Initialize state from serialized data 191 const navLinksState = JSON.parse(serializedData?.navLinks); 192 const locationData = serializedData.locationData ? JSON.parse(serializedData.locationData) : null; 193 // Save location data on location-aware pages, otherwise apply the saved navigation data. 194 if (locationData) { 195 const locationCookieData = {...navLinksState, ...locationData}; 196 document.cookie = `locationNav=${JSON.stringify(locationCookieData)}; path=/`; 197 } 198 else { 199 const locationCookie = getCookie("locationNav"); 200 if (locationCookie) { 201 const savedLocationData = JSON.parse(locationCookie); 202 setNavLinks({...navLinksState, ...savedLocationData}); 203 document.addEventListener("DOMContentLoaded", () => setFooter(savedLocationData.footer)); 204 } 205 } 206 207 function getCookie(name) { 208 function escape(s) { 209 return s.replace(/([.*+?\^$(){}|\[\]\/\\])/g, "\\$1"); 210 } 211 const match = document.cookie.match(RegExp("(?:^|;\\s*)" + escape(name) + "=([^;]*)")); 212 return match ? match[1] : null; 213 } 214 215 function setNavLinks(links) { 216 217 const leftLink = document.querySelector('.nav-left-link'); 218 const leftSub = document.querySelector('.nav-left-subtext'); 219 const rightLink = document.querySelector('.nav-right-link'); 220 const rightSub = document.querySelector('.nav-right-subtext'); 221 222 // Update left nav link 223 if (leftLink && links.navLeftLinkUrl && links.navLeftLinkText) { 224 leftLink.href = links.navLeftLinkUrl; 225 leftLink.textContent = links.navLeftLinkText; 226 } 227 228 // Optional second left link (if structure allows adding it dynamically) 229 if (links.navLeftLinkText2 && links.navLeftLinkUrl2) { 230 let secondLeftLink = document.querySelector('.second-nav-link-left'); 231 // if (!secondLeftLink && leftLink?.parentElement) { 232 // secondLeftLink = document.createElement('a'); 233 // secondLeftLink.className = 'nav-link nav-left-link second-nav-link-left'; 234 // leftLink.parentElement.appendChild(secondLeftLink); 235 // } 236 if (secondLeftLink) { 237 secondLeftLink.href = links.navLeftLinkUrl2; 238 secondLeftLink.textContent = links.navLeftLinkText2; 239 } 240 } 241 242 // Update left subtext 243 if (leftSub && links.navLeftSubtext) { 244 leftSub.textContent = links.navLeftSubtext; 245 } 246 247 // Update right nav link 248 if (rightLink && links.navRightLinkUrl && links.navRightLinkText) { 249 rightLink.href = links.navRightLinkUrl; 250 rightLink.textContent = links.navRightLinkText; 251 } 252 253 // Optional second right link (if structure allows adding it dynamically) 254 if (links.navRightLinkText2 && links.navRightLinkUrl2) { 255 let secondRightLink = document.querySelector('.second-nav-link-right'); 256 // if (!secondRightLink && rightLink?.parentElement) { 257 // secondRightLink = document.createElement('a'); 258 // secondRightLink.className = 'nav-link nav-right-link second-nav-link-right'; 259 // rightLink.parentElement.appendChild(secondRightLink); 260 // } 261 if (secondRightLink) { 262 secondRightLink.href = links.navRightLinkUrl2; 263 secondRightLink.textContent = links.navRightLinkText2; 264 } 265 } 266 267 // Update right subtext 268 if (rightSub && links.navRightSubtext) { 269 rightSub.textContent = links.navRightSubtext; 270 } 271 if (links.mobileCtaLinks && links.mobileCtaLinks.length > 0) { 272 let mobileCta = document.querySelector(".mobile-cta"); 273 mobileCta.innerHTML = ""; 274 let mobileCtaHtml = ""; 275 {links.mobileCtaLinks.forEach((ctaLink) => { 276 let ariaLabel = ctaLink.url.startsWith("http") 277 ? `Open ${ctaLink.mobileCtaLinkText} in a new tab` 278 : null; 279 mobileCtaHtml += ` 280 <a class="mobile-cta-link mobile-cta-link-icon" href="${ctaLink.url}" ${ariaLabel ? `target="_blank"` : ""} ${ariaLabel ? `rel="noopener"` : ""} ${ariaLabel ? `aria-label=${ariaLabel}` : ""}> 281 ${ctaLink.icon ? `<img loading="lazy" src="${getLocalSrcClient(ctaLink.icon)}" alt="${ctaLink.iconAlt}" />` : ""} 282 ${ctaLink.displayTitle || ""} 283 </a>` 284 } 285 )} 286 mobileCta.innerHTML = mobileCtaHtml; 287 } 288 else { 289 let rightMobileCta = document.querySelector(".mobile-cta-right-link"); 290 let leftMobileCta = document.querySelector(".mobile-cta-left-link"); 291 if (rightMobileCta && links.navRightLinkUrl && links.navRightLinkText) { 292 rightMobileCta.href = links.navRightLinkUrl; 293 rightMobileCta.innerText = links.navRightLinkText; 294 } 295 if (leftMobileCta && links.navLeftLinkUrl && links.navLeftLinkText) { 296 leftMobileCta.href = links.navLeftLinkUrl; 297 leftMobileCta.innerText = links.navLeftLinkText; 298 } 299 } 300 301 302 } 303 304 function setFooter(footer) { 305 if (!footer) return; 306 307 const setText = (selector, value, prefix = "") => { 308 if (value === undefined || value === null || value === "") return; 309 document.querySelectorAll(selector).forEach(element => { 310 element.textContent = `${prefix}${value}`; 311 }); 312 }; 313 314 setText("[data-location-footer-address-line-1]", footer.addressLine1); 315 setText("[data-location-footer-address-line-2]", footer.addressLine2, " "); 316 setText("[data-location-footer-city]", footer.city); 317 setText("[data-location-footer-state]", footer.state); 318 setText("[data-location-footer-zip]", footer.zip); 319 320 if (footer.googleMapUrl) { 321 document.querySelectorAll("[data-location-footer-address-link]").forEach(link => link.href = footer.googleMapUrl); 322 } 323 324 if (footer.phoneNumber) { 325 document.querySelectorAll("[data-location-footer-phone-link]").forEach(link => { 326 link.href = `tel:${footer.phoneNumber}`; 327 (link.querySelector("p") || link).textContent = footer.phoneNumber; 328 }); 329 } 330 331 if (footer.hoursOfOperation) { 332 document.querySelectorAll("[data-location-footer-hours]").forEach(hours => { 333 hours.innerHTML = footer.hoursOfOperation.split(",").join("<br />"); 334 hours.hidden = false;
335 }); 336 } 337 338 document.querySelectorAll("[data-location-footer-rating-link]").forEach(link => { 339 if (footer.rating !== undefined && footer.rating !== null && footer.rating !== "") { 340 link.querySelector(".ratings-number").textContent = footer.rating; 341 } 342 if (footer.reviewCount !== undefined && footer.reviewCount !== null && footer.reviewCount !== "") { 343 link.querySelector(".ratings-text").textContent = `from ${footer.reviewCount}+ Reviews`; 344 } 345 if (footer.ratingsLink) { 346 link.href = footer.ratingsLink; 347 const externalLink = footer.ratingsLink.startsWith("http"); 348 link.target = externalLink ? "_blank" : ""; 349 link.rel = externalLink ? "noopener" : ""; 350 link.ariaLabel = externalLink ? "View more testimonials (Opens in a new tab)" : ""; 351 } 352 if (footer.rating !== undefined && footer.rating !== null && footer.rating !== "" 353 && footer.reviewCount !== undefined && footer.reviewCount !== null && footer.reviewCount !== "") { 354 link.hidden = false; 355 } 356 }); 357 } 358 359 const resizeObserver = new ResizeObserver((entries) => { 360 if (document.querySelector("html").classList.contains("open")) return; 361 for (const entry of entries) { 362 if (entry.contentBoxSize) { 363 const navbar = document.querySelector(".navbar"); 364 const header = document.querySelector(".header"); 365 366 if (navbar) { 367 const navHeight = navbar.getBoundingClientRect().height; 368 document.body.style.setProperty("--navbar-height", `${navHeight}px`); 369 } 370 371 if (header) { 372 const headerHeight = header.getBoundingClientRect().height; 373 document.body.style.setProperty("--header-height", `${headerHeight}px`); 374 } 375 } 376 } 377}); 378 379const header = document.querySelector(".header"); 380const headerHeight = header.getBoundingClientRect().height; 381document.body.style.setProperty("--header-height", `${headerHeight}px`); 382resizeObserver.observe(header); 383 384})();</script>
384
384<script>(function(){const disableScrolledClassToggle = false; 385 386(() => { 387 if (typeof window === 'undefined') return; 388 389 const html = document.documentElement; 390 if (html) html.style.scrollBehavior = "smooth"; 391 392 if (!disableScrolledClassToggle) { 393 let headerHeight = parseFloat(getComputedStyle(document.body).getPropertyValue("--header-height")) 394 // turn on scrolled 60% of header height, off at 20% - this is updated as the header height changes 395 let SCROLL_ON = headerHeight * .6; 396 let SCROLL_OFF = headerHeight * .2; 397 398 let isScrolled = window.scrollY > SCROLL_ON; 399 document.body.classList.toggle("scrolled", isScrolled); 400 401 let squelchUntil = 0; 402 403 const toggleScrolled = (y) => { 404 if (!isScrolled && y > SCROLL_ON) { 405 isScrolled = true; 406 document.body.classList.add("scrolled"); 407 squelchUntil = performance.now() + 200; 408 setTimeout(() => { 409 headerHeight = parseFloat(getComputedStyle(document.body).getPropertyValue("--header-height")) 410 SCROLL_ON = headerHeight * .6; 411 SCROLL_OFF = headerHeight * .2; 412 }, 400) 413 } else if (isScrolled && y < SCROLL_OFF) { 414 isScrolled = false; 415 document.body.classList.remove("scrolled"); 416 squelchUntil = performance.now() + 200; 417 setTimeout(() => { 418 headerHeight = parseFloat(getComputedStyle(document.body).getPropertyValue("--header-height")) 419 SCROLL_ON = headerHeight * .6; 420 SCROLL_OFF = headerHeight * .2; 421 }, 400) 422 } 423 }; 424 425 const rafThrottle = (fn) => { 426 let ticking = false; 427 return (...args) => { 428 if (!ticking) { 429 ticking = true; 430 requestAnimationFrame(() => { ticking = false; fn(...args); }); 431 } 432 }; 433 }; 434 435 const handleScroll = () => toggleScrolled(window.scrollY); 436 window.addEventListener("scroll", rafThrottle(handleScroll), { passive: true }); 437 } 438 439 const animateIn = (entries, observer) => { 440 entries.forEach(entry => { 441 if (entry.isIntersecting && !entry.target.classList.contains("animated")) { 442 entry.target.classList.add("animated"); 443 observer.unobserve(entry.target); 444 } 445 }); 446 }; 447 448 const animateObserver = new IntersectionObserver(animateIn, { threshold: 0 }); 449 const observedElements = new WeakSet(); 450 451 const observeNewElements = () => { 452 document.querySelectorAll(".animate:not(.animated)").forEach(element => { 453 if (!observedElements.has(element)) { 454 observedElements.add(element); 455 animateObserver.observe(element); 456 } 457 }); 458 }; 459 460 observeNewElements(); 461 setInterval(observeNewElements, 500); 462})(); 463})();</script>
463 <section class="masthead-outer-container contact-masthead-outer"> <div class="default-masthead-container subpage-masthead-container animate fadeIn animated "> <div class="masthead__image"> <div data-gatsby-image-wrapper="" data-initial-width="2600" data-initial-height="1418" class="gatsby-image-wrapper gatsby-image-wrapper-fullWidth animate zoomOutFadeIn gatsby-subpage-masthead-container " style id="gatsby-img-py96tuq8p"><div class="placeholder-wrapper" style="display:block;"><img alt="" aria-hidden="true" fetchpriority="high" src="data:image/svg+xml;charset=utf-8,%3Csvg height='1418' width='2600' xmlns='http://www.w3.org/2000/svg' version='1.1'%3E%3C/svg%3E" style="max-width: 100%; display: block; position: static"></div><picture><img data-main-image="" style="object-fit: cover; object-position: 57.75% 21.00310201805444%" decoding="async" loading="eager" fetchpriority="high" class alt="Professional women chatting in an office setting." src="/_static_/masthead/about-01.jpg" srcset="/_static_/masthead/@720@/about-01.jpg 720w, /_static_/masthead/@1080@/about-01.jpg 1080w, /_static_/masthead/@1620@/about-01.jpg 1620w, /_static_/masthead/about-01.jpg 2600w" sizes="100vw"></picture></div> </div> <div class="masthead__content__subpage"> <h1 class="title-lg white">Come Visit Us!</h1><p class="lead white uppercase">Conveniently located in Newport Beach</p> </div> </div> </section>
463<script>(function(){const serializedData = {"hasMultipleImages":false}; 464 465 document.addEventListener('DOMContentLoaded', () => { 466 const { hasMultipleImages } = serializedData; 467 468 if (hasMultipleImages) { 469 let mastheadIterator = 1; 470 471 // Initial fade out of first image 472 setTimeout(() => { 473 document.querySelectorAll(".masthead__image .masthead_image_container.masthead-image-1").forEach(e => { 474 e.classList.add('fadeOutMasthead'); 475 }); 476 }, 7100); 477 478 // Remove first-load and fadeOutMasthead classes 479 setTimeout(() => { 480 document.querySelectorAll(".masthead__image .masthead_image_container.masthead-image-1").forEach(e => { 481 e.classList.remove('first-load'); 482 e.classList.remove('fadeOutMasthead'); 483 }); 484 }, 10000); 485 486 // Image rotation interval 487 setInterval(() => { 488 mastheadIterator = mastheadIterator >= 4 ? 1 : mastheadIterator + 1; 489 document.querySelectorAll(".masthead__image .masthead_image_container").forEach(e => { 490 e.classList.remove('fx'); 491 }); 492 document.querySelectorAll(`.masthead__image .masthead_image_container.masthead-image-${mastheadIterator}`).forEach(e => { 493 e.classList.add('fx'); 494 }); 495 }, 7000); 496 } 497 }); 498})();</script>
498 <section class="contact-form-container inline-form-container pv100 mb150 box-shadow-smooth animate fadeIn no-delay full-width-background-image-container " id><div data-gatsby-image-wrapper="" data-initial-width="2600" data-initial-height="1040" class="gatsby-image-wrapper gatsby-image-wrapper-constrained contact-form-background-image full-width-background-image animate fadeIn " style id="gatsby-img-lan2fcint"><div class="placeholder-wrapper" style="display:block;"><img alt="" aria-hidden="true" fetchpriority="high" src="data:image/svg+xml;charset=utf-8,%3Csvg height='1040' width='2600' xmlns='http://www.w3.org/2000/svg' version='1.1'%3E%3C/svg%3E" style="max-width: 100%; display: block; position: static"></div><picture><img data-main-image="" style="object-fit: cover" decoding="async" loading="lazy" fetchpriority="low" class alt="Form Background" src="/_static_/background/cta.jpg" srcset="/_static_/background/@720@/cta.jpg 720w, /_static_/background/@1080@/cta.jpg 1080w, /_static_/background/@1620@/cta.jpg 1620w, /_static_/background/cta.jpg 2600w" sizes="100vw"></picture></div><div class="container inline-form-container"><div class="mw1600"><div class="inline-schedule-consult"><div class="flexy gap50 contact-form-flexy"><div class="flexy-item contact-form-flexy-form-container"><div class="contact-form"><form data-influx-form="{"redirectOnSubmit":false,"redirectUrl":null,"webhookUrl":null,"thankYouTitle":"Thank you for your submission!","thankYouSubtitle":null,"thankYouParagraph1":"<p>We'll get back to you as soon as possible.</p>"}" action="https://forms.influx.mx/form" method="POST" name="Consulation-Form" id="Consulation-Form" aria-label="Consulation Form" class="form" data-submitting="false" data-submitted="false" data-error="false" enctype="multipart/form-data"><input type="hidden" name="formId" value="ecd2ee8c-cf9f-4f4a-a84f-6c696b2a4fc8"><input type="hidden" name="siteId" value="cb0e6891-3e32-4b7e-a98c-24e3098b197c"><input type="hidden" name="gtagevent" value="consulation_form"> 499 <div class="input-wrap-is-full"> 500 <input 501 502 503 name="Full-Name" 504 aria-label="Full Name" 505 aria-required="true" 506 placeholder="Full Name *" 507 required 508 509 510 type="text" 511 /> 512 </div> 513 514 <div class="input-wrap-is-one-third"> 515 <input 516 517 518 name="Email" 519 aria-label="Email" 520 aria-required="true" 521 placeholder="Email *" 522 required 523 524 525 type="email" 526 /> 527 </div> 528 529 <div class="input-wrap-is-one-third"> 530 <input 531 532 533 name="Phone-Number" 534 aria-label="Phone Number" 535 aria-required="true" 536 placeholder="Phone Number *" 537 required 538 539 540 pattern="[\+]?[0-9]{0,2}[\-\s\.]?[\(]?[0-9]{3}[\)]?[\-\s\.]?[0-9]{3}[\-\s\.]?[0-9]{4,6}" 541 type="tel" 542 /> 543 </div> 544 545 <div class="input-wrap-is-one-third"> 546 <label for="Date-of-Birth"> 547 Date of Birth * 548 </label> 549 <input 550 551 552 name="Date-of-Birth" 553 aria-label="Date of Birth" 554 aria-required="true" 555 placeholder="Date of Birth *" 556 required 557 558 559 type="date" 560 /> 561 </div> 562 563 <div class="input-wrap-is-one-third"> 564 <select 565 data-combobox 566 567 568 name="Procedure-of-Interest" 569 aria-label="Procedure of Interest" 570 aria-required="true" 571 placeholder="Procedure of Interest *" 572 required 573 574 575 multiple 576 placeholder="Procedure of Interest*" 577 > 578 579 <optgroup label="Breast & Body"><option value="Brazilian Butt Lift">Brazilian Butt Lift</option><option value="Liposuction and Lipo 360">Liposuction and Lipo 360</option><option value="Mommy Makeover">Mommy Makeover</option><option value="Tummy Tuck">Tummy Tuck</option><option value="Post-Weight Loss Surgery">Post-Weight Loss Surgery</option><option value="Breast Augmentation">Breast Augmentation</option><option value="Breast Lift">Breast Lift</option><option value="Menâs Plastic Surgery Procedures">Menâs Plastic Surgery Procedures</option></optgroup><optgroup label="Face"><option value="Facelift">Facelift</option><option value="Lip Enhancement">Lip Enhancement</option><option value="Rhinoplasty">Rhinoplasty</option><option value="Liquid Facelift Laser & Energy:RF Microneedling">Liquid Facelift Laser & Energy:RF Microneedling</option><option value="CO2 laser">CO2 laser</option></optgroup><option value="Other">Other</option> 580 </select> 581 </div> 582 583 <div class="input-wrap-is-one-third"> 584 <select 585 586 587 name="How-Did-You-Hear-of-Us" 588 aria-label="How Did You Hear of Us?" 589 aria-required="true" 590 placeholder="How Did You Hear of Us? *" 591 required 592 593 594 > 595 <option disabled selected value=""> 596 How Did You Hear of Us?* 597 </option> 598 <option value="Friend">Friend</option><option value=" Co-Worker"> Co-Worker</option><option value=" Previous Patient"> Previous Patient</option><option value=" Online Search"> Online Search</option><option value=" Instagram"> Instagram</option><option value=" Facebook"> Facebook</option><option value=" YouTube"> YouTube</option><option value=" Medspa"> Medspa</option><option value=" Referral"> Referral</option><option value=" Dr. Referral"> Dr. Referral</option><option value=" 599Local Event/Connection"> 600Local Event/Connection</option><option value=" Other"> Other</option> 601 </select> 602 </div> 603 604 <div class="input-wrap-is-one-third"> 605 <select 606 607 608 name="Best-Time-To-Reach-You" 609 aria-label="Best Time To Reach You" 610 aria-required="true" 611 placeholder="Best Time To Reach You *" 612 required 613 614 615 > 616 <option disabled selected value=""> 617 Best Time To Reach You* 618 </option> 619 <option value="Morning">Morning</option><option value="Afternoon">Afternoon</option> 620 </select> 621 </div> 622 623 <div class="input-wrap-is-full"> 624 <select 625 626 627 name="Preferred-Location" 628 aria-label="Preferred Location" 629 aria-required="true" 630 placeholder="Preferred Location *" 631 required 632 633 634 > 635 <option disabled selected value=""> 636 Preferred Location* 637 </option> 638 <option value="Newport Beach">Newport Beach</option><option value=" Readlands"> Readlands</option> 639 </select> 640 </div> 641 642 <div class="input-wrap-is-full"> 643 <textarea 644 645 646 name="How-can-we-assist-your-aesthetic-needs" 647 aria-label="How can we assist your aesthetic needs?" 648 aria-required="true" 649 placeholder="How can we assist your aesthetic needs? *" 650 required 651 652 653 maxlength="280" 654 ></textarea> 655 </div> 656 657 <div class="input-wrap-is-full"> 658 <label for="Upload-Documents"> 659 Upload Documents * 660 </label> 661 <div class="relative" data-influx-file-input id="file-input-b3ca8413-06e9-4641-8aaa-8eb909826790"> 662 <input 663 664 665 name="Upload-Documents" 666 aria-label="Upload Documents" 667 aria-required="true" 668 placeholder="Upload Documents *" 669 required 670 671 672 type="file" 673 accept="image/*,.pdf,application/pdf" 674 /> 675 <div id="file-preview-container" class="form-file-input-preview" style="display: none;"> 676 <img id="file-preview" alt="File preview" /> 677 </div> 678 </div> 679 </div> 680 681 <div class="input-wrap-is-full checkbox-flex"> 682 <input 683 class="width-auto" 684 id="I-consent-to-receive-non-marketing-text-messages-from-DrC-MD-Professional-Corporation-regarding-support-requests-ticket-updates-appointment-coordination-or-follow-up-communications-related-to-an-existing-inquiry-Message-frequency-varies-Messages--data-rates-may-apply-Text-HELP-for-assistance-reply-STOP-to-unsubscribe-at-anytime" 685 686 687 name="I-consent-to-receive-non-marketing-text-messages-from-DrC-MD-Professional-Corporation-regarding-support-requests-ticket-updates-appointment-coordination-or-follow-up-communications-related-to-an-existing-inquiry-Message-frequency-varies-Messages--data-rates-may-apply-Text-HELP-for-assistance-reply-STOP-to-unsubscribe-at-anytime" 688 aria-label="I consent to receive non-marketing text messages from DrC MD. Professional Corporation regarding support requests, ticket updates, appointment coordination, or follow-up communications related to an existing inquiry. Message frequency varies. Messages & data rates may apply. Text HELP for assistance, reply STOP to unsubscribe at anytime" 689 690 placeholder="I consent to receive non-marketing text messages from DrC MD. Professional Corporation regarding support requests, ticket updates, appointment coordination, or follow-up communications related to an existing inquiry. Message frequency varies. Messages & data rates may apply. Text HELP for assistance, reply STOP to unsubscribe at anytime" 691 692 693 694 type="checkbox" 695 /> 696 <label for="I-consent-to-receive-non-marketing-text-messages-from-DrC-MD-Professional-Corporation-regarding-support-requests-ticket-updates-appointment-coordination-or-follow-up-communications-related-to-an-existing-inquiry-Message-frequency-varies-Messages--data-rates-may-apply-Text-HELP-for-assistance-reply-STOP-to-unsubscribe-at-anytime"> 697 I consent to receive non-marketing text messages from DrC MD. Professional Corporation regarding support requests, ticket updates, appointment coordination, or follow-up communications related to an existing inquiry. Message frequency varies. Messages & data rates may apply. Text HELP for assistance, reply STOP to unsubscribe at anytime
698 </label> 699 </div> 700 701 <div class="input-wrap-is-full checkbox-flex"> 702 <input 703 class="width-auto" 704 id="I-consent-to-receive-marketing-text-messages-from-DrC-MD-Professional-Corporation-at-the-phone-number-provided-messages-may-includes-special-offers-discounts-event-promotions-and-service-announcements-Message-frequency-varies-Message-and-data-rates-may-apply-Text-HELP-for-assistance-reply-STOP-to-unsubscribe-at-anytime" 705 706 707 name="I-consent-to-receive-marketing-text-messages-from-DrC-MD-Professional-Corporation-at-the-phone-number-provided-messages-may-includes-special-offers-discounts-event-promotions-and-service-announcements-Message-frequency-varies-Message-and-data-rates-may-apply-Text-HELP-for-assistance-reply-STOP-to-unsubscribe-at-anytime" 708 aria-label="I consent to receive marketing text messages from DrC MD. Professional Corporation at the phone number provided messages may includes special offers, discounts, event promotions, and service announcements. Message frequency varies. Message and data rates may apply. Text HELP for assistance, reply STOP to unsubscribe at anytime" 709 710 placeholder="I consent to receive marketing text messages from DrC MD. Professional Corporation at the phone number provided messages may includes special offers, discounts, event promotions, and service announcements. Message frequency varies. Message and data rates may apply. Text HELP for assistance, reply STOP to unsubscribe at anytime" 711 712 713 714 type="checkbox" 715 /> 716 <label for="I-consent-to-receive-marketing-text-messages-from-DrC-MD-Professional-Corporation-at-the-phone-number-provided-messages-may-includes-special-offers-discounts-event-promotions-and-service-announcements-Message-frequency-varies-Message-and-data-rates-may-apply-Text-HELP-for-assistance-reply-STOP-to-unsubscribe-at-anytime"> 717 I consent to receive marketing text messages from DrC MD. Professional Corporation at the phone number provided messages may includes special offers, discounts, event promotions, and service announcements. Message frequency varies. Message and data rates may apply. Text HELP for assistance, reply STOP to unsubscribe at anytime 718 </label> 719 </div> 720 721 <div class="input-wrap-is-full form-info"> 722 <p class="ql-align-center"><a href="/privacy-policy/">Privacy Policy</a> | <a href="/terms-of-use/">Terms of Use</a></p> 723 </div> 724 <div class="input-wrap-is-full" style="display:none"><input name="ZipCode" placeholder="Zip Code*" type="number" aria-hidden="true"></div><button type="submit" class="button contact-form-button">Schedule Consultation<svg class="arrow contact-form-button-arrow" width="18" height="10" viewBox="0 0 18 10" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12.5 1.3252L17 5.3252M17 5.3252L12.5 9.3252M17 5.3252H1" stroke="white" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></form><div class="form-message" style="display: none;"><div class="card"><div class="error-message" style="display: none;"><h2 class="ipj-link thank-you-form-title title-md">Error with Form Submission</h2><div class="thank-you-form-text-container"><p>There was an error processing your form. Please try again later.</p></div></div><div class="success-message" style="display: none;"><h2 class="ipj-link thank-you-form-title title-md">Thank you for your submission!</h2><div class="thank-you-form-text-container"><p>We'll get back to you as soon as possible.</p></div></div></div></div></div></div></div></div></div></div>
724<script> 725!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).SlimSelect=e()}(this,(function(){"use strict";class t{constructor(t){t||(t={}),this.main=t.main||"ss-main",this.placeholder=t.placeholder||"ss-placeholder",this.values=t.values||"ss-values",this.single=t.single||"ss-single",this.max=t.max||"ss-max",this.value=t.value||"ss-value",this.valueText=t.valueText||"ss-value-text",this.valueDelete=t.valueDelete||"ss-value-delete",this.valueOut=t.valueOut||"ss-value-out",this.deselect=t.deselect||"ss-deselect",this.deselectPath=t.deselectPath||"M10,10 L90,90 M10,90 L90,10",this.arrow=t.arrow||"ss-arrow",this.arrowClose=t.arrowClose||"M10,30 L50,70 L90,30",this.arrowOpen=t.arrowOpen||"M10,70 L50,30 L90,70",this.content=t.content||"ss-content",this.openAbove=t.openAbove||"ss-open-above",this.openBelow=t.openBelow||"ss-open-below",this.search=t.search||"ss-search",this.searchHighlighter=t.searchHighlighter||"ss-search-highlight",this.searching=t.searching||"ss-searching",this.addable=t.addable||"ss-addable",this.addablePath=t.addablePath||"M50,10 L50,90 M10,50 L90,50",this.list=t.list||"ss-list",this.optgroup=t.optgroup||"ss-optgroup",this.optgroupLabel=t.optgroupLabel||"ss-optgroup-label",this.optgroupLabelText=t.optgroupLabelText||"ss-optgroup-label-text",this.optgroupActions=t.optgroupActions||"ss-optgroup-actions",this.optgroupSelectAll=t.optgroupSelectAll||"ss-selectall",this.optgroupSelectAllBox=t.optgroupSelectAllBox||"M60,10 L10,10 L10,90 L90,90 L90,50",this.optgroupSelectAllCheck=t.optgroupSelectAllCheck||"M30,45 L50,70 L90,10",this.optgroupClosable=t.optgroupClosable||"ss-closable",this.option=t.option||"ss-option",this.optionDelete=t.optionDelete||"M10,10 L90,90 M10,90 L90,10",this.highlighted=t.highlighted||"ss-highlighted",this.open=t.open||"ss-open",this.close=t.close||"ss-close",this.selected=t.selected||"ss-selected",this.error=t.error||"ss-error",this.disabled=t.disabled||"ss-disabled",this.hide=t.hide||"ss-hide"}}function e(){return Math.random().toString(36).substring(2,10)}function s(t,e=50,s=!1){let i;return function(...n){const a=self,l=s&&!i;clearTimeout(i),i=setTimeout((()=>{i=null,s||t.apply(a,n)}),e),l&&t.apply(a,n)}}function i(t,e){return JSON.stringify(t)===JSON.stringify(e)}class n{constructor(t){if(this.id=t.id&&""!==t.id?t.id:e(),this.label=t.label||"",this.selectAll=void 0!==t.selectAll&&t.selectAll,this.selectAllText=t.selectAllText||"Select All",this.closable=t.closable||"off",this.options=[],t.options)for(const e of t.options)this.options.push(new a(e))}}class a{constructor(t){this.id=t.id&&""!==t.id?t.id:e(),this.value=void 0===t.value?t.text:t.value,this.text=t.text||"",this.html=t.html||"",this.selected=void 0!==t.selected&&t.selected,this.display=void 0===t.display||t.display,this.disabled=void 0!==t.disabled&&t.disabled,this.mandatory=void 0!==t.mandatory&&t.mandatory,this.placeholder=void 0!==t.placeholder&&t.placeholder,this.class=t.class||"",this.style=t.style||"",this.data=t.data||{}}}class l{constructor(t,e){this.selectType="single",this.data=[],this.selectedOrder=[],this.selectType=t,this.setData(e)}validateDataArray(t){if(!Array.isArray(t))return new Error("Data must be an array");for(let e of t)if(e instanceof n||"label"in e){if(!("label"in e))return new Error("Optgroup must have a label");if("options"in e&&e.options)for(let t of e.options){const e=this.validateOption(t);if(e)return e}}else{if(!(e instanceof a||"text"in e))return new Error("Data object must be a valid optgroup or option");{const t=this.validateOption(e);if(t)return t}}return null}validateOption(t){return"text"in t?null:new Error("Option must have a text")}partialToFullData(t){let e=[];return t.forEach((t=>{if(t instanceof n||"label"in t){let s=[];"options"in t&&t.options&&t.options.forEach((t=>{s.push(new a(t))})),s.length>0&&e.push(new n(t))}(t instanceof a||"text"in t)&&e.push(new a(t))})),e}setData(t){this.data=this.partialToFullData(t),"single"===this.selectType&&this.setSelectedBy("id",this.get
725Selected())}getData(){return this.filter(null,!0)}getDataOptions(){return this.filter(null,!1)}addOption(t,e=!1){if(e){let e=[new a(t)];this.setData(e.concat(this.getData()))}else this.setData(this.getData().concat(new a(t)))}setSelectedBy(t,e){let s=null,i=!1;const l=[];for(let o of this.data){if(o instanceof n)for(let n of o.options)s||(s=n),n.selected=!i&&e.includes(n[t]),n.selected&&(l.push(n),"single"===this.selectType&&(i=!0));o instanceof a&&(s||(s=o),o.selected=!i&&e.includes(o[t]),o.selected&&(l.push(o),"single"===this.selectType&&(i=!0)))}"single"===this.selectType&&s&&!i&&(s.selected=!0,l.push(s));const o=e.map((e=>{var s;return(null===(s=l.find((s=>s[t]===e)))||void 0===s?void 0:s.id)||""}));this.selectedOrder=o}getSelected(){return this.getSelectedOptions().map((t=>t.id))}getSelectedValues(){return this.getSelectedOptions().map((t=>t.value))}getSelectedOptions(){return this.filter((t=>t.selected),!1)}getOptgroupByID(t){for(let e of this.data)if(e instanceof n&&e.id===t)return e;return null}getOptionByID(t){let e=this.filter((e=>e.id===t),!1);return e.length?e[0]:null}getSelectType(){return this.selectType}getFirstOption(){let t=null;for(let e of this.data)if(e instanceof n?t=e.options[0]:e instanceof a&&(t=e),t)break;return t}search(t,e){return""===(t=t.trim())?this.getData():this.filter((s=>e(s,t)),!0)}filter(t,e){const s=[];return this.data.forEach((i=>{if(i instanceof n){let l=[];if(i.options.forEach((i=>{t&&!t(i)||(e?l.push(new a(i)):s.push(new a(i)))})),l.length>0){let t=new n(i);t.options=l,s.push(t)}}i instanceof a&&(t&&!t(i)||s.push(new a(i)))})),s}selectedOrderOptions(t){const e=[];return this.selectedOrder.forEach((s=>{const i=t.find((t=>t.id===s));i&&e.push(i)})),t.forEach((t=>{let s=!1;e.forEach((e=>{t.id!==e.id||(s=!0)})),s||e.push(t)})),e}}class o{constructor(t,e,s,i){this.store=s,this.settings=t,this.classes=e,this.callbacks=i,this.main=this.mainDiv(),this.content=this.contentDiv(),this.updateClassStyles(),this.updateAriaAttributes(),this.settings.contentLocation&&this.settings.contentLocation.appendChild(this.content.main)}enable(){this.main.main.classList.remove(this.classes.disabled),this.content.search.input.disabled=!1}disable(){this.main.main.classList.add(this.classes.disabled),this.content.search.input.disabled=!0}open(){this.main.arrow.path.setAttribute("d",this.classes.arrowOpen),this.main.main.classList.add("up"===this.settings.openPosition?this.classes.openAbove:this.classes.openBelow),this.main.main.setAttribute("aria-expanded","true"),this.moveContent();const t=this.store.getSelectedOptions();if(t.length){const e=t[t.length-1].id,s=this.content.list.querySelector('[data-id="'+e+'"]');s&&this.ensureElementInView(this.content.list,s)}}close(){this.main.main.classList.remove(this.classes.openAbove),this.main.main.classList.remove(this.classes.openBelow),this.main.main.setAttribute("aria-expanded","false"),this.content.main.classList.remove(this.classes.openAbove),this.content.main.classList.remove(this.classes.openBelow),this.main.arrow.path.setAttribute("d",this.classes.arrowClose)}updateClassStyles(){if(this.main.main.className="",this.main.main.removeAttribute("style"),this.content.main.className="",this.content.main.removeAttribute("style"),this.main.main.classList.add(this.classes.main),this.content.main.classList.add(this.classes.content),""!==this.settings.style&&(this.main.main.style.cssText=this.settings.style,this.content.main.style.cssText=this.settings.style),this.settings.class.length)for(const t of this.settings.class)""!==t.trim()&&(this.main.main.classList.add(t.trim()),this.content.main.classList.add(t.trim()));"relative"!==this.settings.contentPosition&&"fixed"!==this.settings.contentPosition||this.content.main.classList.add("ss-"+this.settings.contentPosition)}updateAriaAttributes(){this.main.main.role="combobox",this.main.main.setAttribute("aria-haspopup","listbox"),this.main.main.setAttribute("aria-controls",this.content.main.id),this.main.main.setAttribute("aria-expanded","false"),this.content.main.setAttribute("role","listbox")}mainDiv(){var t;const e=document.createElement("div");e.dataset.id=this.settings.id,e.setAttribute("aria-label",this.settings.ariaLabel),e.tabIndex=0,e.onkeydown=t=>{switch(t.key){case"ArrowUp":case"ArrowDown":return this.callbacks.open(),"ArrowDown"===t.key?this.highlight("down"):this.highlight("up"),!1;case"Tab":return this.callbacks.close(),!0;case"Enter":case" ":this.callbacks.open();const e=this.content.list.querySelector("."+this.classes.highlighted);return e&&e.click(),!1;case"Escape":return this.callbacks.close(),!1}return 1===t.key.length&&this.callbacks.open(),!0},e.onclick=t=>{this.settings.disabled||(this.settings.isOpen?this.callbacks.close():this.callbacks.open())};const s=document.createElement("div");s.classList.add(this.classes.values),e.appendChild(s);const i=document.createElement("div");i.classList.add(this.classes.deselect);const n=null===(t=this.store)||void 0===t?void 0:t.getSelectedOptions();!this.settings.allowDeselect||this.settings.isMultiple&&n&&n.length<=0?i.classList.add(this.classes.hide):i.classList.remove(this.classes.hide),i.onclick=t=>{if(t.stopPropagation(),this.settings.disabled)return;let e=!0;const s=this.store.getSelectedOptions(),i=[];if(this.callbacks.beforeChange&&(e=!0===this.callbacks.beforeChange(i,s)),e){if(this.settings.isMultiple)this.callbacks.setSelected([],!1),this.updateDeselectAll();else{const t=this.store.getFirstOption(),e=t?t.id:"";this.callbacks.setSelected(e,!1)}this.settings.closeOnSelect&&this.callbacks.close(),this.callbacks.afterChange&&this.callbacks.afterChange(this.store.getSelectedOptions())}};const a=document.createElementNS("http://www.w3.org/2000/svg","svg");a.setAttribute("viewBox","0 0 100 100");const l=document.createElementNS("http://www.w3.org/2000/svg","path");l.setAttribute("d",this.classes.deselectPath),a.appendChild(l),i.appendChild(a),e.appendChild(i);const o=document.createElementNS("http://www.w3.org/2000/svg","svg");o.classList.add(this.classes.arrow),o.setAttribute("viewBox","0 0 100 100");const c=document.createElementNS("http://www.w3.org/2000/svg","path");return c.setAttribute("d",this.classes.arrowClose),this.settings.alwaysOpen&&o.classList.add(this.classes.hide),o.appendChild(c),e.appendChild(o),{main:e,values:s,deselect:{main:i,svg:a,path:l},arrow:{main:o,path:c}}}
725mainFocus(t){"click"!==t&&this.main.main.focus({preventScroll:!0})}placeholder(){const t=this.store.filter((t=>t.placeholder),!1);let e=this.settings.placeholderText;t.length&&(""!==t[0].html?e=t[0].html:""!==t[0].text&&(e=t[0].text));const s=document.createElement("div");return s.classList.add(this.classes.placeholder),s.innerHTML=e,s}renderValues(){this.settings.isMultiple?(this.renderMultipleValues(),this.updateDeselectAll()):this.renderSingleValue()}renderSingleValue(){const t=this.store.filter((t=>t.selected&&!t.placeholder),!1),e=t.length>0?t[0]:null;if(e){const t=document.createElement("div");t.classList.add(this.classes.single),e.html?t.innerHTML=e.html:t.innerText=e.text,this.main.values.innerHTML=t.outerHTML}else this.main.values.innerHTML=this.placeholder().outerHTML;this.settings.allowDeselect&&t.length?this.main.deselect.main.classList.remove(this.classes.hide):this.main.deselect.main.classList.add(this.classes.hide)}renderMultipleValues(){let t=this.main.values.childNodes,e=this.store.filter((t=>t.selected&&t.display),!1);if(0===e.length)return void(this.main.values.innerHTML=this.placeholder().outerHTML);{const t=this.main.values.querySelector("."+this.classes.placeholder);t&&t.remove()}if(e.length>this.settings.maxValuesShown){const t=document.createElement("div");return t.classList.add(this.classes.max),t.textContent=this.settings.maxValuesMessage.replace("{number}",e.length.toString()),void(this.main.values.innerHTML=t.outerHTML)}{const t=this.main.values.querySelector("."+this.classes.max);t&&t.remove()}this.settings.keepOrder&&(e=this.store.selectedOrderOptions(e));let s=[];for(let i=0;i<t.length;i++){const n=t[i],a=n.getAttribute("data-id");if(a){e.filter((t=>t.id===a),!1).length||s.push(n)}}for(const t of s)t.classList.add(this.classes.valueOut),setTimeout((()=>{this.main.values.hasChildNodes()&&this.main.values.contains(t)&&this.main.values.removeChild(t)}),100);t=this.main.values.childNodes;for(let s=0;s<e.length;s++){let i=!0;for(let n=0;n<t.length;n++)e[s].id===String(t[n].dataset.id)&&(i=!1);i&&(this.settings.keepOrder||0===t.length?this.main.values.appendChild(this.multipleValue(e[s])):0===s?this.main.values.insertBefore(this.multipleValue(e[s]),t[s]):t[s-1].insertAdjacentElement("afterend",this.multipleValue(e[s])))}}multipleValue(t){const e=document.createElement("div");e.classList.add(this.classes.value),e.dataset.id=t.id;const s=document.createElement("div");if(s.classList.add(this.classes.valueText),s.textContent=t.text,e.appendChild(s),!t.mandatory){const s=document.createElement("div");s.classList.add(this.classes.valueDelete),s.onclick=e=>{if(e.preventDefault(),e.stopPropagation(),this.settings.disabled)return;let s=!0;const i=this.store.getSelectedOptions(),l=i.filter((e=>e.selected&&e.id!==t.id),!0);if(!(this.settings.minSelected&&l.length<this.settings.minSelected)&&(this.callbacks.beforeChange&&(s=!0===this.callbacks.beforeChange(l,i)),s)){let t=[];for(const e of l){if(e instanceof n)for(const s of e.options)t.push(s.id);e instanceof a&&t.push(e.id)}this.callbacks.setSelected(t,!1),this.settings.closeOnSelect&&this.callbacks.close(),this.callbacks.afterChange&&this.callbacks.afterChange(l),this.updateDeselectAll()}};const i=document.createElementNS("http://www.w3.org/2000/svg","svg");i.setAttribute("viewBox","0 0 100 100");const l=document.createElementNS("http://www.w3.org/2000/svg","path");l.setAttribute("d",this.classes.optionDelete),i.appendChild(l),s.appendChild(i),e.appendChild(s)}return e}contentDiv(){const t=document.createElement("div");t.dataset.id=this.settings.id;const e=this.searchDiv();t.appendChild(e.main);const s=this.listDiv();return t.appendChild(s),{main:t,search:e,list:s}}moveContent(){"relative"!==this.settings.contentPosition&&"down"!==this.settings.openPosition?"up"!==this.settings.openPosition?"up"===this.putContent()?this.moveContentAbove():this.moveContentBelow():this.moveContentAbove():this.moveContentBelow()}searchDiv(){const t=document.createElement("div"),e=document.createElement("input"),i=document.createElement("div");t.classList.add(this.classes.search);const n={main:t,input:e};if(this.settings.showSearch||(t.classList.add(this.classes.hide),e.readOnly=!0),e.type="search",e.placeholder=this.settings.searchPlaceholder,e.tabIndex=-1,e.setAttribute("aria-label",this.settings.searchPlaceholder),e.setAttribute("autocapitalize","off"),e.setAttribute("autocomplete","off"),e.setAttribute("autocorrect","off"),e.oninput=s((t=>{this.callbacks.search(t.target.value)}),100),e.onkeydown=t=>{switch(t.key){case"ArrowUp":case"ArrowDown":return"ArrowDown"===t.key?this.highlight("down"):this.highlight("up"),!1;case"Tab":return this.callbacks.close(),!0;case"Escape":return this.callbacks.close(),!1;case" ":const e=this.content.list.querySelector("."+this.classes.highlighted);return!e||(e.click(),!1);
725case"Enter":if(this.callbacks.addable)return i.click(),!1;{const t=this.content.list.querySelector("."+this.classes.highlighted);if(t)return t.click(),!1}return!0}return!0},t.appendChild(e),this.callbacks.addable){i.classList.add(this.classes.addable);const e=document.createElementNS("http://www.w3.org/2000/svg","svg");e.setAttribute("viewBox","0 0 100 100");const s=document.createElementNS("http://www.w3.org/2000/svg","path");s.setAttribute("d",this.classes.addablePath),e.appendChild(s),i.appendChild(e),i.onclick=t=>{if(t.preventDefault(),t.stopPropagation(),!this.callbacks.addable)return;const e=this.content.search.input.value.trim();if(""===e)return void this.content.search.input.focus();const s=t=>{let e=new a(t);if(this.callbacks.addOption(e),this.settings.isMultiple){let t=this.store.getSelected();t.push(e.id),this.callbacks.setSelected(t,!0)}else this.callbacks.setSelected([e.id],!0);this.callbacks.search(""),this.settings.closeOnSelect&&setTimeout((()=>{this.callbacks.close()}),100)},i=this.callbacks.addable(e);!1!==i&&null!=i&&(i instanceof Promise?i.then((t=>{"string"==typeof t?s({text:t,value:t}):i instanceof Error?this.renderError(i.message):s(t)})):"string"==typeof i?s({text:i,value:i}):i instanceof Error?this.renderError(i.message):s(i))},t.appendChild(i),n.addable={main:i,svg:e,path:s}}return n}searchFocus(){this.content.search.input.focus()}getOptions(t=!1,e=!1,s=!1){let i="."+this.classes.option;return t&&(i+=":not(."+this.classes.placeholder+")"),e&&(i+=":not(."+this.classes.disabled+")"),s&&(i+=":not(."+this.classes.hide+")"),Array.from(this.content.list.querySelectorAll(i))}highlight(t){const e=this.getOptions(!0,!0,!0);if(0===e.length)return;if(1===e.length&&!e[0].classList.contains(this.classes.highlighted))return void e[0].classList.add(this.classes.highlighted);let s=!1;for(const t of e)t.classList.contains(this.classes.highlighted)&&(s=!0);if(!s)for(const t of e)if(t.classList.contains(this.classes.selected)){t.classList.add(this.classes.highlighted);break}for(let s=0;s<e.length;s++)if(e[s].classList.contains(this.classes.highlighted)){const i=e[s];i.classList.remove(this.classes.highlighted);const n=i.parentElement;if(n&&n.classList.contains(this.classes.open)){const t=n.querySelector("."+this.classes.optgroupLabel);t&&t.click()}let a=e["down"===t?s+1<e.length?s+1:0:s-1>=0?s-1:e.length-1];a.classList.add(this.classes.highlighted),this.ensureElementInView(this.content.list,a);const l=a.parentElement;if(l&&l.classList.contains(this.classes.close)){const t=l.querySelector("."+this.classes.optgroupLabel);t&&t.click()}return}e["down"===t?0:e.length-1].classList.add(this.classes.highlighted),this.ensureElementInView(this.content.list,e["down"===t?0:e.length-1])}listDiv(){const t=document.createElement("div");return t.classList.add(this.classes.list),t}renderError(t){this.content.list.innerHTML="";const e=document.createElement("div");e.classList.add(this.classes.error),e.textContent=t,this.content.list.appendChild(e)}renderSearching(){this.content.list.innerHTML="";const t=document.createElement("div");t.classList.add(this.classes.searching),t.textContent=this.settings.searchingText,this.content.list.appendChild(t)}renderOptions(t){if(this.content.list.innerHTML="",0===t.length){const t=document.createElement("div");return t.classList.add(this.classes.search),this.callbacks.addable?t.innerHTML=this.settings.addableText.replace("{value}",this.content.search.input.value):t.innerHTML=this.settings.searchText,void this.content.list.appendChild(t)}if(this.settings.allowDeselect&&!this.settings.isMultiple){this.store.filter((t=>t.placeholder),!1).length||this.store.addOption(new a({text:"",value:"",selected:!1,placeholder:!0}),!0)}const e=document.createDocumentFragment();for(const s of t){if(s instanceof n){const t=document.createElement("div");t.classList.add(this.classes.optgroup);const i=document.createElement("div");i.classList.add(this.classes.optgroupLabel),t.appendChild(i);const n=document.createElement("div");n.classList.add(this.classes.optgroupLabelText),n.textContent=s.label,i.appendChild(n);const a=document.createElement("div");if(a.classList.add(this.classes.optgroupActions),i.appendChild(a),this.settings.isMultiple&&s.selectAll){const t=document.createElement("div");t.classList.add(this.classes.optgroupSelectAll);let e=!0;for(const t of s.options)if(!t.selected){e=!1;break}e&&t.classList.add(this.classes.selected);const i=document.createElement("span");i.textContent=s.selectAllText,t.appendChild(i);const n=document.createElementNS("http://www.w3.org/2000/svg","svg");n.setAttribute("viewBox","0 0 100 100"),t.appendChild(n);const l=document.createElementNS("http://www.w3.org/2000/svg","path");l.setAttribute("d",this.classes.optgroupSelectAllBox),n.appendChild(l);const o=document.createElementNS("http://www.w3.org/2000/svg","path");o.setAttribute("d",this.classes.optgroupSelectAllCheck),n.appendChild(o),t.addEventListener("click",(t=>{t.preventDefault(),t.stopPropagation();const i=this.store.getSelected();if(e){const t=i.filter((t=>{for(const e of s.options)if(t===e.id)return!1;return!0}));this.callbacks.setSelected(t,!0)}else{const t=i.concat(s.options.map((t=>t.id)));for(const t of s.options)this.store.getOptionByID(t.id)||this.callbacks.addOption(t);this.callbacks.setSelected(t,!0)}})),a.appendChild(t)}if("off"!==s.closable){const e=document.createElement("div");e.classList.add(this.classes.optgroupClosable);const n=document.createElementNS("http://www.w3.org/2000/svg","svg");n.setAttribute("viewBox","0 0 100 100"),n.classList.add(this.classes.arrow),e.appendChild(n);const l=document.createElementNS("http://www.w3.org/2000/svg","path");n.appendChild(l),s.options.some((t=>t.selected))||""!==this.content.search.input.value.trim()?(e.classList.add(this.classes.open),l.setAttribute("d",this.classes.arrowOpen)):"open"===s.closable?(t.classList.add(this.classes.open),l.setAttribute("d",this.classes.arrowOpen)):"close"===s.closable&&(t.classList.add(this.classes.close),l.setAttribute("d",this.classes.arrowClose)),i.addEventListener("click",(e=>{e.preventDefault(),e.stopPropagation(),t.classList.contains(this.classes.close)?(t.classList.remove(this.classes.close),t.classList.add(this.classes.open),l.setAttribute("d",this.classes.arrowOpen)):(t.classList.remove(this.classes.open),t.classList.add(this.classes.close),l.setAttribute("d",this.classes.arrowClose))})),a.appendChild(e)}t.appendChild(i);for(const i of s.options)t.appendChild(this.option(i)),e.appendChild(t)}s instanceof a&&e.appendChild(this.option(s))}this.content.list.appendChild(e)}option(t){if(t.placeholder){const t=document.createElement("div");return t.classList.add(this.classes.option),t.classList.add(this.classes.hide),t}const e=document.createElement("div");return e.dataset.id=t.id,e.classList.add(this.classes.option),e.setAttribute("role","option"),t.class&&t.class.split(" ").forEach((t=>{e.classList.add(t)})),t.style&&(e.style.cssText=t.style),this.settings.searchHighlight&&""!==this.content.search.input.value.trim()?e.innerHTML=this.highlightText(""!==t.html?t.html:t.text,this.content.search.input.value,this.classes.searchHighlighter):""!==t.html?e.innerHTML=t.html:e.textContent=t.text,this.settings.showOptionTooltips&&e.textContent&&e.setAttribute("title",e.textContent),t.display||e.classList.add(this.classes.hide),t.disabled&&e.classList.add(this.classes.disabled),t.selected&&this.settings.hideSelected&&e.classList.add(this.classes.hide),t.selected?(e.classList.add(this.classes.selected),e.setAttribute("aria-selected","true"),this.main.main.setAttribute("aria-activedescendant",e.id)):(e.classList.remove(this.classes.selected),e.setAttribute("aria-selected","false")),e.addEventListener("click",(e=>{e.preventDefault(),e.stopPropagation();const s=this.store.getSelected(),i=e.currentTarget,n=String(i.dataset.id);if(t.disabled||t.selected&&!this.settings.allowDeselect)return;if(this.settings.isMultiple&&this.settings.maxSelected<=s.length&&!t.selected||this.settings.isMultiple&&this.settings.minSelected>=s.length&&t.selected)return;let a=!1;const l=this.store.getSelectedOptions();let o=[];this.settings.isMultiple&&(o=t.selected?l.filter((t=>
725t.id!==n)):l.concat(t)),this.settings.isMultiple||(o=t.selected?[]:[t]),this.callbacks.beforeChange||(a=!0),this.callbacks.beforeChange&&(a=!1!==this.callbacks.beforeChange(o,l)),a&&(this.store.getOptionByID(n)||this.callbacks.addOption(t),this.callbacks.setSelected(o.map((t=>t.id)),!1),this.settings.closeOnSelect&&this.callbacks.close(),this.callbacks.afterChange&&this.callbacks.afterChange(o))})),e}destroy(){this.main.main.remove(),this.content.main.remove()}highlightText(t,e,s){let i=t;const n=new RegExp("(?![^<]*>)("+e.trim()+")(?![^<]*>[^<>]*</)","i");if(!t.match(n))return t;const a=t.match(n).index,l=a+t.match(n)[0].toString().length,o=t.substring(a,l);return i=i.replace(n,`<mark class="${s}">${o}</mark>`),i}moveContentAbove(){const t=this.main.main.offsetHeight,e=this.content.main.offsetHeight;this.main.main.classList.remove(this.classes.openBelow),this.main.main.classList.add(this.classes.openAbove),this.content.main.classList.remove(this.classes.openBelow),this.content.main.classList.add(this.classes.openAbove);const s=this.main.main.getBoundingClientRect();this.content.main.style.margin="-"+(t+e-1)+"px 0px 0px 0px",this.content.main.style.top=s.top+s.height+("fixed"===this.settings.contentPosition?0:window.scrollY)+"px",this.content.main.style.left=s.left+("fixed"===this.settings.contentPosition?0:window.scrollX)+"px",this.content.main.style.width=s.width+"px"}moveContentBelow(){this.main.main.classList.remove(this.classes.openAbove),this.main.main.classList.add(this.classes.openBelow),this.content.main.classList.remove(this.classes.openAbove),this.content.main.classList.add(this.classes.openBelow);const t=this.main.main.getBoundingClientRect();this.content.main.style.margin="-1px 0px 0px 0px","relative"!==this.settings.contentPosition&&(this.content.main.style.top=t.top+t.height+("fixed"===this.settings.contentPosition?0:window.scrollY)+"px",this.content.main.style.left=t.left+("fixed"===this.settings.contentPosition?0:window.scrollX)+"px",this.content.main.style.width=t.width+"px")}ensureElementInView(t,e){const s=t.scrollTop+t.offsetTop,i=s+t.clientHeight,n=e.offsetTop,a=n+e.clientHeight;n<s?t.scrollTop-=s-n:a>i&&(t.scrollTop+=a-i)}putContent(){const t=this.main.main.offsetHeight,e=this.main.main.getBoundingClientRect(),s=this.content.main.offsetHeight;return window.innerHeight-(e.top+t)<=s&&e.top>s?"up":"down"}updateDeselectAll(){if(!this.store||!this.settings)return;const t=this.store.getSelectedOptions(),e=t&&t.length>0,s=this.settings.isMultiple,i=this.settings.allowDeselect,n=this.main.deselect.main,a=this.classes.hide;!i||s&&!e?n.classList.add(a):n.classList.remove(a)}}class c{constructor(t){this.listen=!1,this.observer=null,this.select=t,this.valueChange=this.valueChange.bind(this),this.select.addEventListener("change",this.valueChange,{passive:!0}),this.observer=new MutationObserver(this.observeCall.bind(this)),this.changeListen(!0)}enable(){this.select.disabled=!1}disable(){this.select.disabled=!0}hideUI(){this.select.tabIndex=-1,this.select.style.display="none",this.select.setAttribute("aria-hidden","true")}showUI(){this.select.removeAttribute("tabindex"),this.select.style.display="",this.select.removeAttribute("aria-hidden")}changeListen(t){this.listen=t,t&&this.observer&&this.observer.observe(this.select,{subtree:!0,childList:!0,attributes:!0}),t||this.observer&&this.observer.disconnect()}valueChange(t){return this.listen&&this.onValueChange&&this.onValueChange(this.getSelectedOptions()),!0}observeCall(t){if(!this.listen)return;let e=!1,s=!1,i=!1;for(const n of t){if(n.target===this.select&&("disabled"===n.attributeName&&(s=!0),"class"===n.attributeName&&(e=!0),"childList"===n.type)){for(const t of n.addedNodes)if("OPTION"===t.nodeName&&t.value===this.select.value){this.select.dispatchEvent(new Event("change"));break}i=!0}"OPTGROUP"!==n.target.nodeName&&"OPTION"!==n.target.nodeName||(i=!0)}e&&this.onClassChange&&this.onClassChange(this.select.className.split(" ")),s&&this.onDisabledChange&&(this.changeListen(!1),this.onDisabledChange(this.select.disabled),this.changeListen(!0)),i&&this.onOptionsChange&&(this.changeListen(!1),this.onOptionsChange(this.getData()),this.changeListen(!0))}getData(){let t=[];const e=this.select.childNodes;for(const s of e)"OPTGROUP"===s.nodeName&&t.push(this.getDataFromOptgroup(s)),"OPTION"===s.nodeName&&t.push(this.getDataFromOption(s));return t}
725getDataFromOptgroup(t){let e={id:t.id,label:t.label,selectAll:!!t.dataset&&"true"===t.dataset.selectall,selectAllText:t.dataset?t.dataset.selectalltext:"Select all",closable:t.dataset?t.dataset.closable:"off",options:[]};const s=t.childNodes;for(const t of s)"OPTION"===t.nodeName&&e.options.push(this.getDataFromOption(t));return e}getDataFromOption(t){return{id:t.id,value:t.value,text:t.text,html:t.dataset&&t.dataset.html?t.dataset.html:"",selected:t.selected,display:"none"!==t.style.display,disabled:t.disabled,mandatory:!!t.dataset&&"true"===t.dataset.mandatory,placeholder:"true"===t.dataset.placeholder,class:t.className,style:t.style.cssText,data:t.dataset}}getSelectedOptions(){let t=[];const e=this.select.childNodes;for(const s of e){if("OPTGROUP"===s.nodeName){const e=s.childNodes;for(const s of e)if("OPTION"===s.nodeName){const e=s;e.selected&&t.push(this.getDataFromOption(e))}}if("OPTION"===s.nodeName){const e=s;e.selected&&t.push(this.getDataFromOption(e))}}return t}getSelectedValues(){return this.getSelectedOptions().map((t=>t.value))}setSelected(t){this.changeListen(!1);const e=this.select.childNodes;for(const s of e){if("OPTGROUP"===s.nodeName){const e=s.childNodes;for(const s of e)if("OPTION"===s.nodeName){const e=s;e.selected=t.includes(e.id)}}if("OPTION"===s.nodeName){const e=s;e.selected=t.includes(e.id)}}this.changeListen(!0)}setSelectedByValue(t){this.changeListen(!1);const e=this.select.childNodes;for(const s of e){if("OPTGROUP"===s.nodeName){const e=s.childNodes;for(const s of e)if("OPTION"===s.nodeName){const e=s;e.selected=t.includes(e.value)}}if("OPTION"===s.nodeName){const e=s;e.selected=t.includes(e.value)}}this.changeListen(!0)}updateSelect(t,e,s){this.changeListen(!1),t&&(this.select.dataset.id=t),e&&(this.select.style.cssText=e),s&&(this.select.className="",s.forEach((t=>{""!==t.trim()&&this.select.classList.add(t.trim())}))),this.changeListen(!0)}updateOptions(t){this.changeListen(!1),this.select.innerHTML="";for(const e of t)e instanceof n&&this.select.appendChild(this.createOptgroup(e)),e instanceof a&&this.select.appendChild(this.createOption(e));this.select.dispatchEvent(new Event("change",{bubbles:!0})),this.changeListen(!0)}createOptgroup(t){const e=document.createElement("optgroup");if(e.id=t.id,e.label=t.label,t.selectAll&&(e.dataset.selectAll="true"),"off"!==t.closable&&(e.dataset.closable=t.closable),t.options)for(const s of t.options)e.appendChild(this.createOption(s));return e}createOption(t){const e=document.createElement("option");return e.id=t.id,e.value=t.value,e.textContent=t.text,""!==t.html&&e.setAttribute("data-html",t.html),t.selected&&(e.selected=t.selected),t.disabled&&(e.disabled=!0),t.display||(e.style.display="none"),t.placeholder&&e.setAttribute("data-placeholder","true"),t.mandatory&&e.setAttribute("data-mandatory","true"),t.class&&t.class.split(" ").forEach((t=>{e.classList.add(t)})),t.data&&"object"==typeof t.data&&Object.keys(t.data).forEach((s=>{e.setAttribute("data-"+function(t){const e=t.replace(/[A-Z\u00C0-\u00D6\u00D8-\u00DE]/g,(t=>"-"+t.toLowerCase()));return t[0]===t[0].toUpperCase()?e.substring(1):e}(s),t.data[s])})),e}destroy(){this.changeListen(!1),this.select.removeEventListener("change",this.valueChange),this.observer&&(this.observer.disconnect(),this.observer=null),delete this.select.dataset.id,this.showUI()}}class h{constructor(t){this.id="",this.style="",this.class=[],this.isMultiple=!1,this.isOpen=!1,this.isFullOpen=!1,this.intervalMove=null,t||(t={}),this.id="ss-"+e(),this.style=t.style||"",this.class=t.class||[],this.disabled=void 0!==t.disabled&&t.disabled,this.alwaysOpen=void 0!==t.alwaysOpen&&t.alwaysOpen,this.showSearch=void 0===t.showSearch||t.showSearch,this.focusSearch=void 0===t.focusSearch||t.focusSearch,this.ariaLabel=t.ariaLabel||"Combobox",this.searchPlaceholder=t.searchPlaceholder||"Search",this.searchText=t.searchText||"No Results",this.searchingText=t.searchingText||"Searching...",this.searchHighlight=void 0!==t.searchHighlight&&t.searchHighlight,this.closeOnSelect=void 0===t.closeOnSelect||t.closeOnSelect,this.contentLocation=t.contentLocation||document.body,this.contentPosition=t.contentPosition||"absolute",this.openPosition=t.openPosition||"auto",this.placeholderText=void 0!==t.placeholderText?t.placeholderText:"Select Value",this.allowDeselect=void 0!==t.allowDeselect&&t.allowDeselect,this.hideSelected=void 0!==t.hideSelected&&t.hideSelected,this.keepOrder=void 0!==t.keepOrder&&t.keepOrder,this.showOptionTooltips=void 0!==t.showOptionTooltips&&t.showOptionTooltips,this.minSelected=t.minSelected||0,this.maxSelected=t.maxSelected||1e3,this.timeoutDelay=t.timeoutDelay||200,this.maxValuesShown=t.maxValuesShown||20,this.maxValuesMessage=t.maxValuesMessage||"{number} selected",this.addableText=t.addableText||'Press "Enter" to add {value}'}}return class{constructor(e){var i;if(this.events={search:void 0,searchFilter:(t,e)=>-1!==t.text.toLowerCase().indexOf(e.toLowerCase()),addable:void 0,beforeChange:void 0,afterChange:void 0,beforeOpen:void 0,afterOpen:void 0,beforeClose:void 0,afterClose:void 0},this.windowResize=s((()=>{(this.settings.isOpen||this.settings.isFullOpen)&&this.render.moveContent()})),this.windowScroll=s((()=>{(this.settings.isOpen||this.settings.isFullOpen)&&this.render.moveContent()})),this.documentClick=t=>
725{this.settings.isOpen&&t.target&&!function(t,e){function s(t,s){return s&&t&&t.classList&&t.classList.contains(s)||s&&t&&t.dataset&&t.dataset.id&&t.dataset.id===e?t:null}return s(t,e)||function t(e,i){return e&&e!==document?s(e,i)?e:t(e.parentNode,i):null}(t,e)}(t.target,this.settings.id)&&this.close(t.type)},this.windowVisibilityChange=()=>{document.hidden&&this.close()},this.selectEl="string"==typeof e.select?document.querySelector(e.select):e.select,!this.selectEl)return void(e.events&&e.events.error&&e.events.error(new Error("Could not find select element")));if("SELECT"!==this.selectEl.tagName)return void(e.events&&e.events.error&&e.events.error(new Error("Element isnt of type select")));this.selectEl.dataset.ssid&&this.destroy(),this.settings=new h(e.settings),this.cssClasses=new t(e.cssClasses);const n=["afterChange","beforeOpen","afterOpen","beforeClose","afterClose"];for(const t in e.events)e.events.hasOwnProperty(t)&&(-1!==n.indexOf(t)?this.events[t]=s(e.events[t],100):this.events[t]=e.events[t]);this.settings.disabled=(null===(i=e.settings)||void 0===i?void 0:i.disabled)?e.settings.disabled:this.selectEl.disabled,this.settings.isMultiple=this.selectEl.multiple,this.settings.style=this.selectEl.style.cssText,this.settings.class=this.selectEl.className.split(" "),this.select=new c(this.selectEl),this.select.updateSelect(this.settings.id,this.settings.style,this.settings.class),this.select.hideUI(),this.select.onValueChange=t=>{this.setSelected(t.map((t=>t.id)))},this.select.onClassChange=t=>{this.settings.class=t,this.render.updateClassStyles()},this.select.onDisabledChange=t=>{t?this.disable():this.enable()},this.select.onOptionsChange=t=>{this.setData(t)},this.store=new l(this.settings.isMultiple?"multiple":"single",e.data?e.data:this.select.getData()),e.data&&this.select.updateOptions(this.store.getData());const a={open:this.open.bind(this),close:this.close.bind(this),addable:this.events.addable?this.events.addable:void 0,setSelected:this.setSelected.bind(this),addOption:this.addOption.bind(this),search:this.search.bind(this),beforeChange:this.events.beforeChange,afterChange:this.events.afterChange};this.render=new o(this.settings,this.cssClasses,this.store,a),this.render.renderValues(),this.render.renderOptions(this.store.getData());const r=this.selectEl.getAttribute("aria-label"),d=this.selectEl.getAttribute("aria-labelledby");r?this.render.main.main.setAttribute("aria-label",r):d&&this.render.main.main.setAttribute("aria-labelledby",d),this.selectEl.parentNode&&this.selectEl.parentNode.insertBefore(this.render.main.main,this.selectEl.nextSibling),window.addEventListener("resize",this.windowResize,!1),"auto"===this.settings.openPosition&&window.addEventListener("scroll",this.windowScroll,!1),document.addEventListener("visibilitychange",this.windowVisibilityChange),this.settings.disabled&&this.disable(),this.settings.alwaysOpen&&this.open(),this.selectEl.slim=this}enable(){this.settings.disabled=!1,this.select.enable(),this.render.enable()}disable(){this.settings.disabled=!0,this.select.disable(),this.render.disable()}getData(){return this.store.getData()}setData(t){const e=this.store.getSelected(),s=this.store.validateDataArray(t);if(s)return void(this.events.error&&this.events.error(s));this.store.setData(t);const n=this.store.getData();this.select.updateOptions(n),this.render.renderValues(),this.render.renderOptions(n),this.events.afterChange&&!i(e,this.store.getSelected())&&this.events.afterChange(this.store.getSelectedOptions())}getSelected(){let t=this.store.getSelectedOptions();return this.settings.keepOrder&&(t=this.store.selectedOrderOptions(t)),t.map((t=>t.value))}setSelected(t,e=!0){const s=this.store.getSelected(),n=this.store.getDataOptions();t=Array.isArray(t)?t:[t];const a=[];for(const e of t)if(n.find((t=>t.id==e)))a.push(e);else for(const t of n.filter((t=>t.value==e)))a.push(t.id);this.store.setSelectedBy("id",a);const l=this.store.getData();this.select.updateOptions(l),this.render.renderValues(),""!==this.render.content.search.input.value?this.search(this.render.content.search.input.value):this.render.renderOptions(l),e&&this.events.afterChange&&!i(s,this.store.getSelected())&&this.events.afterChange(this.store.getSelectedOptions())}addOption(t){const e=this.store.getSelected();this.store.getDataOptions().some((e=>{var s;return e.value===(null!==(s=t.value)&&void 0!==s?s:t.text)}))||this.store.addOption(t);const s=this.store.getData();this.select.updateOptions(s),this.render.renderValues(),this.render.renderOptions(s),this.events.afterChange&&!i(e,this.store.getSelected())&&this.events.afterChange(this.store.getSelectedOptions())}open(){this.settings.disabled||this.settings.isOpen||(this.events.beforeOpen&&this.events.beforeOpen(),this.render.open(),this.settings.showSearch&&this.settings.focusSearch&&this.render.searchFocus(),this.settings.isOpen=!0,setTimeout((()=>{this.events.afterOpen&&this.events.afterOpen(),this.settings.isOpen&&(this.settings.isFullOpen=!0),document.addEventListener("click",this.documentClick)}),this.settings.timeoutDelay),"absolute"===this.settings.contentPosition&&(this.settings.intervalMove&&clearInterval(this.settings.intervalMove),this.settings.intervalMove=setInterval(this.render.moveContent.bind(this.render),500)))}close(t=null){this.settings.isOpen&&!this.settings.alwaysOpen&&(this.events.beforeClose&&this.events.beforeClose(),this.render.close(),""!==this.render.content.search.input.value&&this.search(""),this.render.mainFocus(t),this.settings.isOpen=!1,this.settings.isFullOpen=!1,setTimeout((()=>{this.events.afterClose&&this.events.afterClose(),document.removeEventListener("click",this.documentClick)}),this.settings.timeoutDelay),this.settings.intervalMove&&clearInterval(this.settings.intervalMove))}search(t){if(this.render.content.search.input.value!==t&&(this.render.content.search.input.value=t),!this.events.search)return void this.render.renderOptions(""===t?this.store.getData():this.store.search(t,this.events.searchFilter));this.render.renderSearching();const e=this.events.search(t,this.store.getSelectedOptions());e instanceof Promise?e.then((t=>{this.render.renderOptions(this.store.partialToFullData(t))})).catch((t=>{this.render.renderError("string"==typeof t?t:t.message)})):Array.isArray(e)?this.render.renderOptions(this.store.partialToFullData(e)):this.render.renderError("Search event must return a promise or an array of data")}destroy(){document.removeEventListener("click",this.documentClick),window.removeEventListener("resize",this.windowResize,!1),"auto"===this.settings.openPosition&&window.removeEventListener("scroll",this.windowScroll,!1),document.removeEventListener("visibilitychange",this.windowVisibilityChange),this.store.setData([]),this.render.destroy(),this.select.destroy()}}})); 726 727document.addEventListener("DOMContentLoaded", () => { 728 document.querySelectorAll("[data-combobox]").forEach(select => { 729 const slim = new SlimSelect({ 730 select, 731 settings: { 732 allowDeselect: true, 733 placeholderText: select.getAttribute("placeholder"), 734 closeOnSelect: false, 735 maxValuesShown: 5 736 }, 737 events: { 738 afterChange: () => clearError(select) 739 } 740 }); 741 742 const form = select.closest("form"); 743 if (!form) return; 744 745 const container = el => el.closest(".input-wrap, .input-wrap-is-one-third, .input-wrap-is-half, .input-wrap-is-full"); 746 const isEmpty = () => select.hasAttribute("required") && (!slim.getSelected() || slim.getSelected().length === 0); 747 748 function scrollToInput(input) { 749 const headerHeight = parseFloat(getComputedStyle(document.body).getPropertyValue("--header-height")) || 0; 750 const rect = input.getBoundingClientRect(); 751 const top = Math.max(0, window.scrollY + rect.top - headerHeight - 30); 752 window.scrollTo({ 753 top, 754 behavior: "auto" 755 }); 756 } 757 758 function getScrollTarget(el) { 759 if (el._combo) { 760 const visibleSelect = el.nextElementSibling; 761 if (visibleSelect && visibleSelect.classList.contains("ss-main")) return visibleSelect; 762 return container(el); 763 } 764 765 return el.offsetParent === null ? container(el) : el; 766 } 767 768 function showError(el) { 769 const wrap = container(el); 770 if (!wrap || wrap.querySelector(".error-bubble")) return; 771 const bubble = document.createElement("div"); 772 bubble.className = "error-bubble"; 773 bubble.textContent = "This field is required."; 774 wrap.appendChild(bubble); 775 el.setAttribute("aria-invalid", "true"); 776 } 777 778 function clearError(el) { 779 const wrap = container(el); 780 if (!wrap) return; 781 const bubble = wrap.querySelector(".error-bubble"); 782 if (bubble) bubble.remove(); 783 el.removeAttribute("aria-invalid"); 784 el.removeAttribute("aria-errormessage"); 785 } 786 787 select._combo = true; 788 select._empty = isEmpty; 789 790 if (!form._comboInit) { 791 form._comboInit = true; 792 793 ["input", "change"].forEach(evt => { 794 form.addEventListener(evt, e => clearError(e.target), true); 795 }); 796 797 function validateForm(e) { 798 let hasError = false;
799 let firstInvalid = null; 800 const fields = form.querySelectorAll("input[required]:not([type='hidden']):not([name='ZipCode']), select[required], textarea[required]"); 801 fields.forEach(el => { 802 const invalid = el._combo ? el._empty() : !el.checkValidity() || (["text","email","tel"].includes(el.type) && !el.value.trim()); 803 if (invalid) { 804 hasError = true; 805 if (!firstInvalid) firstInvalid = getScrollTarget(el); 806 showError(el); 807 } 808 }); 809 if (hasError) { 810 e.preventDefault(); 811 e.stopImmediatePropagation(); 812 if (firstInvalid) scrollToInput(firstInvalid); 813 } 814 return !hasError; 815 } 816 817 form.addEventListener("submit", validateForm, true); 818 819 if (!form._nativeSubmit) { 820 form._nativeSubmit = form.submit.bind(form); 821 form.submit = () => { 822 if (validateForm(new Event("submit", {cancelable: true}))) { 823 form._nativeSubmit(); 824 } 825 }; 826 } 827 } 828 }); 829}); 830 831</script>
831</section><section class="page-section-container cards-section-container business-info-cards column-spacing-3" id> <div class="title-container card-title-container"> <p class="animate title-md fadeIn card-feature-title">Contact</p> <h3 class="animate title-xs card-feature-subtitle fadeIn">Se habla español!</h3> </div> <div class="card-feature-section-text-container"> </div> <div class="flexy cards-container"> <div class="flexy-item animate fadeIn card card-feature-card full-width-background-image-container "> <div data-gatsby-image-wrapper="" data-initial-width="625" data-initial-height="786" class="gatsby-image-wrapper gatsby-image-wrapper-cover full-width-background-image" style id="gatsby-img-5i6jallo8"><div class="placeholder-wrapper" style="display:block;"><img alt="" aria-hidden="true" fetchpriority="high" src="data:image/svg+xml;charset=utf-8,%3Csvg height='786' width='625' xmlns='http://www.w3.org/2000/svg' version='1.1'%3E%3C/svg%3E" style="max-width: 100%; display: block; position: static"></div><picture><img data-main-image="" style="object-fit: cover; object-position: top" decoding="async" loading="lazy" fetchpriority="low" class alt="Shadows of leaves on a light background." src="/_static_/background/card-bg-02.jpg" srcset="/_static_/background/card-bg-02.jpg 625w" sizes="100vw"></picture></div> <h3 class="title-sm card-feature-individual-title">Newport Beach</h3> <div class="card-feature-individual-text"><p class="ql-align-center"><a href="https://maps.app.goo.gl/CHkgTwCaG5sdUePH6" target="_blank" rel="noopener">901 Dover Dr, Suite 122, Newport Beach, CA, 92660</a></p><p class="ql-align-center"><a href="tel:(949) 247-8543">(949) 247-8543</a></p></div> </div><div class="flexy-item animate fadeIn card card-feature-card full-width-background-image-container "> <div data-gatsby-image-wrapper="" data-initial-width="625" data-initial-height="786" class="gatsby-image-wrapper gatsby-image-wrapper-cover full-width-background-image" style id="gatsby-img-tdjj45nmy"><div class="placeholder-wrapper" style="display:block;"><img alt="" aria-hidden="true" fetchpriority="high" src="data:image/svg+xml;charset=utf-8,%3Csvg height='786' width='625' xmlns='http://www.w3.org/2000/svg' version='1.1'%3E%3C/svg%3E" style="max-width: 100%; display: block; position: static"></div><picture><img data-main-image="" style="object-fit: cover; object-position: top" decoding="async" loading="lazy" fetchpriority="low" class alt="Shadows of leaves on a light background." src="/_static_/background/card-bg-02.jpg" srcset="/_static_/background/card-bg-02.jpg 625w" sizes="100vw"></picture></div> <h3 class="title-sm card-feature-individual-title">Redlands</h3> <div class="card-feature-individual-text"><p><a href="https://maps.app.goo.gl/xyiTAPyYcdnGz2Df8" rel="noopener" target="_blank" aria-label="Open https://maps.app.goo.gl/xyiTAPyYcdnGz2Df8 in a new tab">1740 Plum Lane Suite A Redlands, CA 92374</a></p><p><a href="tel:9492478543">(949) 247-8543</a></p></div> </div> </div> </section><section data-free-form="true" class="mw1600 free-form-27d3beae-695a-48ab-897a-00d3fd24a6a3"> <div class="flexy map-group"><div class="inner-map-container fadeIn animate animated"><h3 class="title-sm fadeIn animate animated">Newport Beach</h3><div class="inner-map box-shadow-smooth"><iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3322.2654231231454!2d-117.9056781!3d33.6243593!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x80c2c48373eb27b7%3A0x760ad9515dd27be7!2sJohn%20Compoginis%2C%20MD%2C%20FACS%20-Plastic%20Surgery!5e0!3m2!1sen!2sus!4v1777493118074!5m2!1sen!2sus" width="100%" height="450" style="border:0;" allowfullscreen="" loading="lazy" referrerpolicy="no-referrer-when-downgrade"></iframe></div></div><div class="inner-map-container fadeIn animate animated"><h3 class="title-sm fadeIn animate animated">Redlands</h3><div class="inner-map box-shadow-smooth"><iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3305.011927453768!2d-117.2145519!3d34.0692085!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x80dcaa5682dce21d%3A0xe87e30859f2ab445!2s1740%20Plum%20Ln%20Suite%20A%2C%20Redlands%2C%20CA%2092374!5e0!3m2!1sen!2sus!4v1777493297942!5m2!1sen!2sus" width="100%" height="450" style="border:0;" allowfullscreen="" loading="lazy" referrerpolicy="no-referrer-when-downgrade"></iframe></div></div></div> </section>
831<script defer src="/assets/js/swiper-bundle.min.js"></script>
831
831<script>(function(){const component = {"id":"82e7f863-97c9-4680-9512-2b58d5d6191e","type":"TextSwiper","title":"âExperienced and [.inline-block]compassionate handsâ¦[]â","titleTag":"h3","subtitle":"Patient Testimonials","subtitleTag":"h2","paragraph1":"","paragraph2":"","paragraph3":null,"paragraph4":null,"image1":null,"image1Alt":null,"image1ObjectPositionX":null,"image1ObjectPositionY":null,"image2":null,"image2Alt":null,"image2ObjectPositionX":null,"image2ObjectPositionY":null,"image3":null,"image3Alt":null,"image3ObjectPositionX":null,"image3ObjectPositionY":null,"image4":null,"image4Alt":null,"image4ObjectPositionX":null,"image4ObjectPositionY":null,"backgroundImage":null,"backgroundColor":null,"reversed":false,"hasImage":false,"slidesPerView":1,"buttonText":"view all reviews","buttonLink":"/testimonials/","buttonText2":null,"buttonLink2":null,"hasButton":false,"inlineFormId":null,"inlineGalleryId":null,"inlineGalleryFilterId":null,"specialsChoice":null,"hasAccentIcon":false,"additionalClassList":"","mediaLink1":"","mediaLink2":"","startDate":null,"endDate":null,"autoPlay":false,"hasPagination":false,"isLoop":true,"isBlurred":false,"removeBoxShadow":false,"removeBackground":false,"freeFormJson":null,"extendedComponentData":null,"subComponents":[{"id":"859d0b20-ac66-42e4-a958-ac4aa38c339e","order":0,"displayTitle":null,"title":"","titleTag":"h3","subtitle":"","subtitleTag":"h2","paragraph1":"<p>\"Dr. Compoginis is an amazing surgeon who gave me phenomenal results. I've had 2 rounds of major plastic surgery that I needed after a 135 lbs weight loss. His dedication to his patients is truly remarkable. Not only did Dr. Compoginis provide exceptional surgical results, but he also showed great compassion and support throughout the entire process. His expertise and attention to detail made a significant difference in my overall experience. I'm grateful to have found such a skilled and caring surgeon like Dr. Compoginis. His after-care support is top-tier, and it is what I think sets him apart from others. His proficiency in plastic surgery, especially in cases like mine after significant weight loss, is truly commendable. Dr. Compoginis has such an excellent team supporting him, especially with Jo as the office manager. It's clear that the entire staff in Newport is dedicated to providing exceptional care and making the journey as seamless as possible. This level of professionalism and attentiveness further underscores Dr. Compoginis's commitment to his patients' well-being. I highly recommend him to anyone seeking outstanding surgical care and results.\"</p>","paragraph2":null,"image1":null,"image1Alt":null,"image1ObjectPositionX":null,"image1ObjectPositionY":null,"buttonText":null,"buttonLink":null,"buttonText2":null,"buttonLink2":null,"subtext":"-Renee Peralta, Newport Beach, CA, plastic surgery patient. 2 years ago","extendedComponentData":null},{"id":"89f3fa2f-f7dc-4277-8a1f-5460668bce43","order":1,"displayTitle":null,"title":"","titleTag":"h3","subtitle":"","subtitleTag":"h2","paragraph1":"<p>\"Dr. Compoginis was a referral from my Primary Care Physician, and sheâs super picky, so that was a great start. When I met Dr. C & his staff (especially Meg & Gabby), they immediately put me at ease. Dr. C has outstanding credentials and a great low-key style. He listens to what you want to accomplish and gives you options to consider. Iâm now 9 weeks post op and doing extremely well. I followed all his guidelines, and he was always available for questions and concerns. The whole team is approachable, accessible, and flexible. The results are well above my expectations, and I highly recommend Dr. C. You will be in experienced and compassionate hands and look awesome!\"</p>","paragraph2":null,"image1":null,"image1Alt":null,"image1ObjectPositionX":null,"image1ObjectPositionY":null,"buttonText":null,"buttonLink":null,"buttonText2":null,"buttonLink2":null,"subtext":"-Shirley Schumacher, Newport Beach, CA, plastic surgery patient.12 months ago","extendedComponentData":null},{"id":"c0d4c4ae-f73a-429c-9a30-d31d8ece25cf","order":2,"displayTitle":null,"title":"","titleTag":"h3","subtitle":"","subtitleTag":"h2","paragraph1":"<p>\"He was a great surgeon. I had major surgery on my jaw, and to fix the trauma that happened to my face about 4 months ago. He did a great job, and I'm able to sing and eat food without pain. Sometimes the metal plate makes my face a bit tingly at times, but it's not that bad. I'm grateful to have met and worked with a wonderful surgeon. I woke up a bit faster from the anesthesia and my nose was all fixed up. He has a great bedside manner.\"</p>","paragraph2":null,"image1":null,"image1Alt":null,"image1ObjectPositionX":null,"image1ObjectPositionY":null,"buttonText":null,"buttonLink":null,"buttonText2":null,"buttonLink2":null,"subtext":"-Casandra Mullen, Newport Beach, CA, rhinoplasty patient. 2 years ago","extendedComponentData":null},{"id":"42c79432-9389-4886-bb77-5a1c8696145f","order":3,"displayTitle":null,"title":"","titleTag":"h3","subtitle":"","subtitleTag":"h2","paragraph1":"<p>\"Dr. Compoginis and Claudia were great to work with. They both were easy to ask questions to and gave thorough answers. If I need a plastic surgeon in the future, I would go back to Dr. Compoginis!\"</p>","paragraph2":null,"image1":null,"image1Alt":null,"image1ObjectPositionX":null,"image1ObjectPositionY":null,"buttonText":null,"buttonLink":null,"buttonText2":null,"buttonLink2":null,"subtext":"-Catherine Wagner, Newport Beach, CA, plastic surgery patient. 3 years ago","extendedComponentData":null},{"id":"a4f97d04-fe37-439f-8faa-57ac85af9dc5","order":4,"displayTitle":null,"title":"","titleTag":"h3","subtitle":"","subtitleTag":"h2","paragraph1":"<p>\"Dr. Compoginis and Claudia are amazing! From the moment I met him, I felt comfortable and confident that I was in good hands. I am going on two months post-op, and I am loving my results. I had so many questions and concerns after my surgery, and Dr. Compoginis and Claudia were always available to answer my questions.\"</p>","paragraph2":null,"image1":null,"image1Alt":null,"image1ObjectPositionX":null,"image1ObjectPositionY":null,"buttonText":null,"buttonLink":null,"buttonText2":null,"buttonLink2":null,"subtext":"-Stacie Garcia, Newport Beach, CA, plastic surgery patient. 3 years ago","extendedComponentData":null},{"id":"49619f6f-a371-4d41-91ba-dc208dcbf3e3","order":5,"displayTitle":null,"title":"","titleTag":"h3","subtitle":"","subtitleTag":"h2","paragraph1":"<p>\"For any cosmetic surgery, one is nervous, and you do your due diligence to find a surgeon with the best possible qualifications: expertise/skill, experience with the procedure(s), and sensitivity (\"does the surgeon really listen to YOU & what YOU want\"). For my neck, face, and eyelid procedures, I found Dr. Compoginis reassuringly knowledgeable, highly skilled, and warmly responsive. My results were excellent.\"</p>","paragraph2":null,"image1":null,"image1Alt":null,"image1ObjectPositionX":null,"image1ObjectPositionY":null,"buttonText":null,"buttonLink":null,"buttonText2":null,"buttonLink2":null,"subtext":"-N Behrendt, Newport Beach, CA, plastic surgery patient. 3 years ago","extendedComponentData":null},{"id":"bff8623b-6fe8-49d3-9bfc-b78cd8335402","order":6,"displayTitle":null,"title":"","titleTag":"h3","subtitle":"","subtitleTag":"h2","paragraph1":"<p>\"Had a great experience with Dr. John, very patient and understanding with anyone's concerns, kept me in check, and did a phenomenal job, would highly recommend!\"</p>","paragraph2":null,"image1":null,"image1Alt":null,"image1ObjectPositionX":null,"image1ObjectPositionY":null,"buttonText":null,"buttonLink":null,"buttonText2":null,"buttonLink2":null,"subtext":"-Mirla Martinez, Newport Beach, CA, plastic surgery patient. 3 years ago","extendedComponentData":null},{"id":"88f45683-d272-4260-98cb-aa434acda00e","order":7,"displayTitle":null,"title":"","titleTag":"h3","subtitle":"","subtitleTag":"h2","paragraph1":"<p>\"I love love love my results with Dr. Compoginis. Am going into my second month of healing and continue to see drastic results, and my waist getting smaller. I recommend him to anybody who is thinking of any surgery. He has a soft touch and knows what he is doing. He has a very friendly staff that helps you along the way.\"</p>","paragraph2":null,"image1":null,"image1Alt":null,"image1ObjectPositionX":null,"image1ObjectPositionY":null,"buttonText":null,"buttonLink":null,"buttonText2":null,"buttonLink2":null,"subtext":"-Maria Ramirez, Newport Beach, CA, plastic surgery patient. 3 years ago","extendedComponentData":null},{"id":"b60a6a12-8e04-4e27-be90-978e79f9f945","order":8,"displayTitle":null,"title":"","titleTag":"h3","subtitle":"","subtitleTag":"h2","paragraph1":"<p>\"Dr. C is one amazing doctor. I had a BBL and a tummy tuck, and Iâm loving both results. He is gentle, kind, and takes his time with you to explain everything. His staff is outstanding as well. I would highly recommend him to anyone.\"</p>","paragraph2":null,"image1":null,"image1Alt":null,"image1ObjectPositionX":null,"image1ObjectPositionY":null,"buttonText":null,"buttonLink":null,"buttonText2":null,"buttonLink2":null,"subtext":"-Amy Satamian, Newport Beach, CA, BBL and tummy tuck patient. 3 years ago","extendedComponentData":null},{"id":"e899b25d-9388-40ad-992e-2ef997c6d0a1","order":9,"displayTitle":null,"title":"","titleTag":"h3","subtitle":"","subtitleTag":"h2","paragraph1":"<p>\"I had the best experience. The staff were friendly and would always respond to all my questions and concerns. Dr. Compoginis was amazing! He was so gentle, and I had no bruising after my tummy tuck and breast augmentation.\"</p>","paragraph2":null,"image1":null,"image1Alt":null,"image1ObjectPositionX":null,"image1ObjectPositionY":null,"buttonText":null,"buttonLink":null,"buttonText2":null,"buttonLink2":null,"subtext":"-Mayra Moreno, Newport Beach, CA, plastic surgery patient. 3 years ago","extendedComponentData":null}],"linkRevealItems":[],"ipjLinkText":""}; 832 833 document.addEventListener("DOMContentLoaded", () => { 834 const swiper = new Swiper(`.swiper-${component.id} .swiper-container`, { 835 spaceBetween: 10, 836 slidesPerView: 1, 837 loop: component.isLoop, 838 breakpoints: { 839 480: { 840 slidesPerView: 1, 841 spaceBetween: 10 842 }, 843 840: { 844 slidesPerView: component.slidesPerView, 845 spaceBetween: 50 846 } 847 }, 848 pagination: component.hasPagination 849 ? { 850 el: `.swiper-${component.id} .swiper-pagination`, 851 clickable: true 852 } 853 : false, 854 autoplay: component.autoPlay 855 ? { 856 delay: 4000, 857 disableOnInteraction: true 858 } 859 : false 860 }); 861 862 document.querySelector(`.swiper-${component.id}
862 .swiper-controls-top-previous`).addEventListener("click", () => swiper.slidePrev()); 863 document.querySelector(`.swiper-${component.id} .swiper-controls-top-next`).addEventListener("click", () => swiper.slideNext()); 864 document.querySelector(`.swiper-${component.id} .before-swiper-icon-container`).addEventListener("click", () => swiper.slidePrev()); 865 document.querySelector(`.swiper-${component.id} .after-swiper-icon-container`).addEventListener("click", () => swiper.slideNext()); 866 }); 867})();</script>
867 <section class="container page-section-container text-swiper-section-container swiper-82e7f863-97c9-4680-9512-2b58d5d6191e" data-slides-per-view="1" id="text-swiper"> <div class="title-container text-swiper-section-title-container"> <h3 class="animate title-md fadeIn text-swiper-section-title">âExperienced and <span class="inline-block">compassionate handsâ¦</span>â</h3> <h2 class="animate title-xs text-swiper-section-subtitle fadeIn">Patient Testimonials</h2> </div> <div class="text-swiper-section-text-container"> </div> <div class="swiper-controls-top-container animate fadeIn"> <div class="swiper-controls-top-previous"></div> <div class="swiper-controls-top-next"></div> </div> <div class="swiper-outer-container animate fadeIn"> <div class="before-swiper-icon-container"></div> <div class="after-swiper-icon-container"></div> <div class="swiper swiper-container"> <div class="swiper-wrapper"> <div class="swiper-slide text-center" style="cursor: pointer;"> <div class="text-swiper-slide-text"><p>"Dr. Compoginis is an amazing surgeon who gave me phenomenal results. I've had 2 rounds of major plastic surgery that I needed after a 135 lbs weight loss. His dedication to his patients is truly remarkable. Not only did Dr. Compoginis provide exceptional surgical results, but he also showed great compassion and support throughout the entire process. His expertise and attention to detail made a significant difference in my overall experience. I'm grateful to have found such a skilled and caring surgeon like Dr. Compoginis. His after-care support is top-tier, and it is what I think sets him apart from others. His proficiency in plastic surgery, especially in cases like mine after significant weight loss, is truly commendable. Dr. Compoginis has such an excellent team supporting him, especially with Jo as the office manager. It's clear that the entire staff in Newport is dedicated to providing exceptional care and making the journey as seamless as possible. This level of professionalism and attentiveness further underscores Dr. Compoginis's commitment to his patients' well-being. I highly recommend him to anyone seeking outstanding surgical care and results."</p></div> <p class="text-swiper-slide-subtext">-Renee Peralta, Newport Beach, CA, plastic surgery patient. 2 years ago</p> </div><div class="swiper-slide text-center" style="cursor: pointer;"> <div class="text-swiper-slide-text"><p>"Dr. Compoginis was a referral from my Primary Care Physician, and sheâs super picky, so that was a great start. When I met Dr. C & his staff (especially Meg & Gabby), they immediately put me at ease. Dr. C has outstanding credentials and a great low-key style. He listens to what you want to accomplish and gives you options to consider. Iâm now 9 weeks post op and doing extremely well. I followed all his guidelines, and he was always available for questions and concerns. The whole team is approachable, accessible, and flexible. The results are well above my expectations, and I highly recommend Dr. C. You will be in experienced and compassionate hands and look awesome!"</p></div> <p class="text-swiper-slide-subtext">-Shirley Schumacher, Newport Beach, CA, plastic surgery patient.12 months ago</p> </div><div class="swiper-slide text-center" style="cursor: pointer;"> <div class="text-swiper-slide-text"><p>"He was a great surgeon. I had major surgery on my jaw, and to fix the trauma that happened to my face about 4 months ago. He did a great job, and I'm able to sing and eat food without pain. Sometimes the metal plate makes my face a bit tingly at times, but it's not that bad. I'm grateful to have met and worked with a wonderful surgeon. I woke up a bit faster from the anesthesia and my nose was all fixed up. He has a great bedside manner."</p></div> <p class="text-swiper-slide-subtext">-Casandra Mullen, Newport Beach, CA, rhinoplasty patient. 2 years ago</p> </div><div class="swiper-slide text-center" style="cursor: pointer;"> <div class="text-swiper-slide-text"><p>"Dr. Compoginis and Claudia were great to work with. They both were easy to ask questions to and gave thorough answers. If I need a plastic surgeon in the future, I would go back to Dr. Compoginis!"</p></div> <p class="text-swiper-slide-subtext">-Catherine Wagner, Newport Beach, CA, plastic surgery patient. 3 years ago</p> </div><div class="swiper-slide text-center" style="cursor: pointer;"> <div class="text-swiper-slide-text"><p>"Dr. Compoginis and Claudia are amazing! From the moment I met him, I felt comfortable and confident that I was in good hands. I am going on two months post-op, and I am loving my results. I had so many questions and concerns after my surgery, and Dr. Compoginis and Claudia were always available to answer my questions."</p></div> <p class="text-swiper-slide-subtext">-Stacie Garcia, Newport Beach, CA, plastic surgery patient. 3 years ago</p> </div><div class="swiper-slide text-center" style="cursor: pointer;"> <div class="text-swiper-slide-text"><p>"For any cosmetic surgery, one is nervous, and you do your due diligence to find a surgeon with the best possible qualifications: expertise/skill, experience with the procedure(s), and sensitivity ("does the surgeon really listen to YOU & what YOU want"). For my neck, face, and eyelid procedures, I found Dr. Compoginis reassuringly knowledgeable, highly skilled, and warmly responsive. My results were excellent."</p></div> <p class="text-swiper-slide-subtext">-N Behrendt, Newport Beach, CA, plastic surgery patient. 3 years ago</p> </div><div class="swiper-slide text-center" style="cursor: pointer;"> <div class="text-swiper-slide-text"><p>"Had a great experience with Dr. John, very patient and understanding with anyone's concerns, kept me in check, and did a phenomenal job, would highly recommend!"</p></div> <p class="text-swiper-slide-subtext">-Mirla Martinez, Newport Beach, CA, plastic surgery patient. 3 years ago</p> </div><div class="swiper-slide text-center" style="cursor: pointer;"> <div class="text-swiper-slide-text"><p>"I love love love my results with Dr. Compoginis. Am going into my second month of healing and continue to see drastic results, and my waist getting smaller. I recommend him to anybody who is thinking of any surgery. He has a soft touch and knows what he is doing. He has a very friendly staff that helps you along the way."</p></div> <p class="text-swiper-slide-subtext">-Maria Ramirez, Newport Beach, CA, plastic surgery patient. 3 years ago</p> </div><div class="swiper-slide text-center" style="cursor: pointer;"> <div class="text-swiper-slide-text"><p>"Dr. C is one amazing doctor. I had a BBL and a tummy tuck, and Iâm loving both results. He is gentle, kind, and takes his time with you to explain everything. His staff is outstanding as well. I would highly recommend him to anyone."</p></div> <p class="text-swiper-slide-subtext">-Amy Satamian, Newport Beach, CA, BBL and tummy tuck patient. 3 years ago</p> </div><div class="swiper-slide text-center" style="cursor: pointer;"> <div class="text-swiper-slide-text"><p>"I had the best experience. The staff were friendly and would always respond to all my questions and concerns. Dr. Compoginis was amazing! He was so gentle, and I had no bruising after my tummy tuck and breast augmentation."</p></div> <p class="text-swiper-slide-subtext">-Mayra Moreno, Newport Beach, CA, plastic surgery patient. 3 years ago</p> </div> </div> </div> <div class="text-center testimonial-button-container"> <a class="button text-swiper-button" href="/testimonials/"> view all reviews <svg class="arrow text-swiper-button-arrow" width="18" height="10" viewB
867ox="0 0 18 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M12.5 1.3252L17 5.3252M17 5.3252L12.5 9.3252M17 5.3252H1" stroke="white" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"></path> </svg> </a> </div> </div> </section><section class="container page-section-container two-column-image-section-container full-width-background-image-container dr-quote text-white" id> <div data-gatsby-image-wrapper="" data-initial-width="1800" data-initial-height="1980" class="gatsby-image-wrapper gatsby-image-wrapper-cover full-width-background-image" style id="gatsby-img-8io5tu4eu"><div class="placeholder-wrapper" style="display:block;"><img alt="" aria-hidden="true" fetchpriority="high" src="data:image/svg+xml;charset=utf-8,%3Csvg height='1980' width='1800' xmlns='http://www.w3.org/2000/svg' version='1.1'%3E%3C/svg%3E" style="max-width: 100%; display: block; position: static"></div><picture><img data-main-image="" style="object-fit: cover; object-position: top" decoding="async" loading="lazy" fetchpriority="low" class alt="Dark green layered leaves texture background." src="/_static_/background/bg-02.jpg" srcset="/_static_/background/@720@/bg-02.jpg 720w, /_static_/background/@1080@/bg-02.jpg 1080w, /_static_/background/@1620@/bg-02.jpg 1620w, /_static_/background/bg-02.jpg 1800w" sizes="100vw"></picture></div> <div class="flexy two-column-section-flex-container two-column-section-flex-container-has-image " style="flex-direction:unset"> <div class="flexy-item two-column-section-flex-child two-column-section-flex-child-text-container animate fadeIn"> <div class="title-container two-column-image-title-container"> <h2 class="two-column-section-has-image-title title-md highlight-color animate fadeIn">âI'm committed to your personal goals and achieving those goals safely.â</h2> <h2 class="two-column-section-has-image-subtitle intro accent-color animate fadeIn">- John M. Compoginis, MD., F.A.C.S.</h2> </div> <div class="text-image-multi-button-container"> <a class="button two-column-text-and-image-button" href="#schedule-consult-footer-form"> Get Started <svg class="arrow two-column-text-and-image-button-arrow" width="18" height="10" viewBox="0 0 18 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M12.5 1.3252L17 5.3252M17 5.3252L12.5 9.3252M17 5.3252H1" stroke="white" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"></path> </svg> </a> </div> </div> <div class="flexy-item two-column-section-flex-child flexy-image two-column-section-flex-child-image animate fadeIn"> <div class="feature-accent-image animate fadeIn accent-image-two-column"></div> <div data-gatsby-image-wrapper="" data-initial-width="1200" data-initial-height="1450" class="gatsby-image-wrapper gatsby-image-wrapper-cover animate zoomOutFadeIn gatsby-image-absolute-wrapper" style id="gatsby-img-eo3rncvxv"><div class="placeholder-wrapper" style="display:block;"><img alt="" aria-hidden="true" fetchpriority="high" src="data:image/svg+xml;charset=utf-8,%3Csvg height='1450' width='1200' xmlns='http://www.w3.org/2000/svg' version='1.1'%3E%3C/svg%3E" style="max-width: 100%; display: block; position: static"></div><picture><img data-main-image="" style="object-fit: cover; object-position: 47.032185380724115% 18.379730418268565%" decoding="async" loading="lazy" fetchpriority="low" class alt="Man in stylish blazer on modern staircase." src="/_static_/feature/about-01.jpg" srcset="/_static_/feature/@720@/about-01.jpg 720w, /_static_/feature/@1080@/about-01.jpg 1080w, /_static_/feature/about-01.jpg 1200w" sizes="100vw"></picture></div> </div> </div> </section> <section class="contact-form-container footer-form-container pv100 animate fadeIn no-delay" data-astro-cid-svshx33u><div data-gatsby-image-wrapper="" data-initial-width="2600" data-initial-height="1040" class="gatsby-image-wrapper gatsby-image-wrapper-constrained contact-form-background-image " style id="gatsby-img-qrpu2rh4l"><div class="placeholder-wrapper" style="display:block;"><img alt="" aria-hidden="true" fetchpriority="high" src="data:image/svg+xml;charset=utf-8,%3Csvg height='1040' width='2600' xmlns='http://www.w3.org/2000/svg' version='1.1'%3E%3C/svg%3E" style="max-width: 100%; display: block; position: static"></div><picture><img data-main-image="" style="object-fit: cover" decoding="async" loading="lazy" fetchpriority="low" class alt="Form Backgroun
867d" src="/_static_/background/cta.jpg" srcset="/_static_/background/@720@/cta.jpg 720w, /_static_/background/@1080@/cta.jpg 1080w, /_static_/background/@1620@/cta.jpg 1620w, /_static_/background/cta.jpg 2600w" sizes="100vw"></picture></div><div class="container" id="schedule-consult-footer-form" data-astro-cid-svshx33u><div class="mw1600" data-astro-cid-svshx33u><div class="inline-schedule-consult" data-astro-cid-svshx33u><div class="flexy gap50 contact-form-flexy" data-astro-cid-svshx33u><div class="flexy-item contact-form-flexy-text-container" data-astro-cid-svshx33u><h2 class="ipj-link contact-form-title title-md">Schedule Your Appointment</h2><div class="contact-form-text-container"><p>Experience the artistry and precision of Dr. Compoginis. Whether itâs a subtle enhancement or a dramatic transformation, every procedure is tailored to your goals. Schedule your consultation today, virtual or in-person, and take the first step toward the confidence and lasting beauty you deserve.</p></div></div><div class="flexy-item contact-form-flexy-form-container" data-astro-cid-svshx33u><div class="contact-form" data-astro-cid-svshx33u><form data-influx-form="{"redirectOnSubmit":false,"redirectUrl":null,"webhookUrl":null,"thankYouTitle":"Thank you for your submission!","thankYouSubtitle":null,"thankYouParagraph1":"<p>We'll get back to you as soon as possible.</p>"}" action="https://forms.influx.mx/form" method="POST" novalidate name="Default-Form" aria-label="Default Form" class="form" data-thank-you-title="Thank you for your submission!" data-thank-you-text="<p>We'll get back to you as soon as possible.</p>" id="footer-form" data-astro-reload enctype="multipart/form-data" data-astro-cid-svshx33u><input type="hidden" name="formId" value="719fce9f-0950-42ee-8a2d-18c6d539886d" data-astro-cid-svshx33u><input type="hidden" name="siteId" value="cb0e6891-3e32-4b7e-a98c-24e3098b197c" data-astro-cid-svshx33u><input type="hidden" name="gtagevent" value="default_form" data-astro-cid-svshx33u><input type="hidden" name="redirectOnSubmit" value="false" data-astro-cid-svshx33u><input type="hidden" name="redirectUrl" value data-astro-cid-svshx33u> 868 <div class="input-wrap-is-full"> 869 <input 870 871 872 name="Full-Name" 873 aria-label="Full Name" 874 aria-required="true" 875 placeholder="Full Name *" 876 required 877 878 879 type="text" 880 /> 881 </div> 882 883 <div class="input-wrap-is-one-third"> 884 <input 885 886 887 name="Email" 888 aria-label="Email" 889 aria-required="true" 890 placeholder="Email *" 891 required 892 893 894 type="email" 895 /> 896 </div> 897 898 <div class="input-wrap-is-one-third"> 899 <input 900 901 902 name="Phone-Number" 903 aria-label="Phone Number" 904 aria-required="true" 905 placeholder="Phone Number *" 906 required 907 908 909 pattern="[\+]?[0-9]{0,2}[\-\s\.]?[\(]?[0-9]{3}[\)]?[\-\s\.]?[0-9]{3}[\-\s\.]?[0-9]{4,6}" 910 type="tel" 911 /> 912 </div> 913 914 <div class="input-wrap-is-one-third"> 915 <label for="Date-of-Birth"> 916 Date of Birth * 917 </label> 918 <input 919 920 921 name="Date-of-Birth" 922 aria-label="Date of Birth" 923 aria-required="true" 924 placeholder="Date of Birth *" 925 required 926 927 928 type="date" 929 /> 930 </div> 931 932 <div class="input-wrap-is-one-third"> 933 <select 934 data-combobox 935 936 937 name="Procedure-of-Interest" 938 aria-label="Procedure of Interest" 939 aria-required="true" 940 placeholder="Procedure of Interest *" 941 required 942 943 944 multiple 945 placeholder="Procedure of Interest*" 946 > 947 948 <optgroup label="Breast & Body"><option value="Brazilian Butt Lift">Brazilian Butt Lift</option><option value="Liposuction and Lipo 360">Liposuction and Lipo 360</option><option value="Mommy Makeover">Mommy Makeover</option><option value="Tummy Tuck">Tummy Tuck</option><option value="Post-Weight Loss Surgery">Post-Weight Loss Surgery</option><option value="Breast Augmentation">Breast Augmentation</option><option value="Breast Lift">Breast Lift</option><option value="Menâs Plastic Surgery Procedures">Menâs Plastic Surgery Procedures</option></optgroup><optgroup label="Face"><option value="Facelift">Facelift</option><option value="Lip Enhancement">Lip Enhancement</option><option value="Rhinoplasty">Rhinoplasty</option><option value="Liquid Facelift Laser & Energy:RF Microneedling">Liquid Facelift Laser & Energy:RF Microneedling</option><option value="CO2 laser">CO2 laser</option></optgroup><option value="Other">Other</option> 949 </select> 950 </div> 951 952 <div class="input-wrap-is-one-third"> 953 <select 954 955 956 name="How-Did-You-Hear-of-Us" 957 aria-label="How Did You Hear of Us?" 958 aria-required="true" 959 placeholder="How Did You Hear of Us? *" 960 required 961 962 963 > 964 <option disabled selected value=""> 965 How Did You Hear of Us?* 966 </option> 967 <option value="Friend">Friend</option><option value=" Co-Worker"> Co-Worker</option><option value=" Previous Patient"> Previous Patient</option><option value=" Online Search"> Online Search</option><option value=" Instagram"> Instagram</option><option value=" Facebook"> Facebook</option><option value=" YouTube"> YouTube</option><option value=" Medspa"> Medspa</option><option value=" Referral"> Referral</option><option value=" Dr. Referral"> Dr. Referral</option><option value=" 968Local Event/Connection"> 969Local Event/Connection</option><option value=" Other"> Other</option> 970 </select> 971 </div> 972 973 <div class="input-wrap-is-one-third"> 974 <select 975 976 977 name="Best-Time-To-Reach-You" 978 aria-label="Best Time To Reach You" 979 aria-required="true" 980 placeholder="Best Time To Reach You *" 981 required 982 983 984 > 985 <option disabled selected value=""> 986 Best Time To Reach You* 987 </option> 988 <option value="Morning">Morning</option><option value="Afternoon">Afternoon</option> 989 </select> 990 </div> 991 992 <div class="input-wrap-is-full"> 993 <select 994 995 996 name="Preferred-Location" 997 aria-label="Preferred Location" 998 aria-required="true" 999 placeholder="Preferred Location *" 1000 required 1001 1002 1003 > 1004 <option disabled selected value=""> 1005 Preferred Location* 1006 </option> 1007 <option value="Newport Beach">Newport Beach</option><option value=" Redlands"> Redlands</option> 1008 </select> 1009 </div> 1010 1011 <div class="input-wrap-is-full"> 1012 <textarea 1013 1014 1015 name="How-can-we-assist-your-aesthetic-needs" 1016 aria-label="How can we assist your aesthetic needs?" 1017 aria-required="true" 1018 placeholder="How can we assist your aesthetic needs? *" 1019 required 1020 1021 1022 maxlength="280" 1023 ></textarea> 1024 </div> 1025 1026 <div class="input-wrap-is-full checkbox-flex"> 1027 <input 1028 class="width-auto" 1029 id="I-consent-to-receive-non-marketing-text-messages-from-DrC-MD-Professional-Corporation-regarding-support-requests-ticket-updates-appointment-coordination-or-follow-up-communications-related-to-an-existing-inquiry-Message-frequency-varies-Messages--data-rates-may-apply-Text-HELP-for-assistance-reply-STOP-to-unsubscribe-at-anytime" 1030 1031 1032 name="I-consent-to-receive-non-marketing-text-messages-from-DrC-MD-Professional-Corporation-regarding-support-requests-ticket-updates-appointment-coordination-or-follow-up-communications-related-to-an-existing-inquiry-Message-frequency-varies-Messages--data-rates-may-apply-Text-HELP-for-assistance-reply-STOP-to-unsubscribe-at-anytime" 1033 aria-label="I consent to receive non-marketing text messages from DrC MD. Professional Corporation regarding support requests, ticket updates, appointment coordination, or follow-up communications related to an existing inquiry. Message frequency varies. Messages & data rates may apply. Text HELP for assistance, reply STOP to unsubscribe at anytime" 1034 1035 placeholder="I consent to receive non-marketing text messages from DrC MD. Professional Corporation regarding support requests, ticket updates, appointment coordination, or follow-up communications related to an existing inquiry. Message frequency varies. Messages & data rates may apply. Text HELP for assistance, reply STOP to unsubscribe at anytime" 1036 1037 1038 1039 type="checkbox" 1040 /> 1041 <label for="I-consent-to-receive-non-marketing-text-messages-from-DrC-MD-Professional-Corporation-regarding-support-requests-ticket-updates-appointment-coordination-or-follow-up-communications-related-to-an-existing-inquiry-Message-frequency-varies-Messages--data-rates-may-apply-Text-HELP-for-assistance-reply-STOP-to-unsubscribe-at-anytime"> 1042 I consent to receive non-marketing text messages from DrC MD. Professional Corporation regarding support requests, ticket updates, appointment coordination, or follow-up communications related to an existing inquiry. Message frequency varies. Messages & data rates may apply. Text HELP for assistance, reply STOP to unsubscribe at anytime
1043 </label> 1044 </div> 1045 1046 <div class="input-wrap-is-full checkbox-flex"> 1047 <input 1048 class="width-auto" 1049 id="I-consent-to-receive-marketing-text-messages-from-DrC-MD-Professional-Corporation-at-the-phone-number-provided-messages-may-includes-special-offers-discounts-event-promotions-and-service-announcements-Message-frequency-varies-Message-and-data-rates-may-apply-Text-HELP-for-assistance-reply-STOP-to-unsubscribe-at-anytime" 1050 1051 1052 name="I-consent-to-receive-marketing-text-messages-from-DrC-MD-Professional-Corporation-at-the-phone-number-provided-messages-may-includes-special-offers-discounts-event-promotions-and-service-announcements-Message-frequency-varies-Message-and-data-rates-may-apply-Text-HELP-for-assistance-reply-STOP-to-unsubscribe-at-anytime" 1053 aria-label="I consent to receive marketing text messages from DrC MD. Professional Corporation at the phone number provided messages may includes special offers, discounts, event promotions, and service announcements. Message frequency varies. Message and data rates may apply. Text HELP for assistance, reply STOP to unsubscribe at anytime" 1054 1055 placeholder="I consent to receive marketing text messages from DrC MD. Professional Corporation at the phone number provided messages may includes special offers, discounts, event promotions, and service announcements. Message frequency varies. Message and data rates may apply. Text HELP for assistance, reply STOP to unsubscribe at anytime" 1056 1057 1058 1059 type="checkbox" 1060 /> 1061 <label for="I-consent-to-receive-marketing-text-messages-from-DrC-MD-Professional-Corporation-at-the-phone-number-provided-messages-may-includes-special-offers-discounts-event-promotions-and-service-announcements-Message-frequency-varies-Message-and-data-rates-may-apply-Text-HELP-for-assistance-reply-STOP-to-unsubscribe-at-anytime"> 1062 I consent to receive marketing text messages from DrC MD. Professional Corporation at the phone number provided messages may includes special offers, discounts, event promotions, and service announcements. Message frequency varies. Message and data rates may apply. Text HELP for assistance, reply STOP to unsubscribe at anytime 1063 </label> 1064 </div> 1065 1066 <div class="input-wrap-is-full form-info"> 1067 <p class="ql-align-center"><a href="/privacy-policy/">Privacy Policy</a> | <a href="/terms-of-use/">Terms of Use</a></p> 1068 </div> 1069 <div class="input-wrap-is-full" style="display: none;" data-astro-cid-svshx33u><input name="ZipCode" placeholder="Zip Code*" type="number" aria-hidden="true" data-astro-cid-svshx33u></div><button type="submit" class="button contact-form-button" data-astro-cid-svshx33u>Schedule Consultation<svg class="arrow contact-form-button-arrow" width="18" height="10" viewBox="0 0 18 10" fill="none" xmlns="http://www.w3.org/2000/svg" data-astro-cid-svshx33u><path d="M12.5 1.3252L17 5.3252M17 5.3252L12.5 9.3252M17 5.3252H1" stroke="white" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-svshx33u></path></svg></button><a class="button contact-form-button form-phone-link" href="tel:(949) 247-8543" data-location-footer-phone-link data-astro-cid-svshx33u>(949) 247-8543</a></form><div class="form-message" style="display: none;" data-astro-cid-svshx33u><div class="card" data-astro-cid-svshx33u><div class="error-message" style="display: none;" data-astro-cid-svshx33u><h2 class="ipj-link thank-you-form-title title-md" data-astro-cid-svshx33u>Error with Form Submission</h2><div class="thank-you-form-text-container" data-astro-cid-svshx33u><p data-astro-cid-svshx33u>There was an error processing your form. Please try again later.</p></div></div><div class="success-message" style="display: none;" data-astro-cid-svshx33u><h2 class="ipj-link thank-you-form-title title-md">Thank you for your submission!</h2><div class="thank-you-form-text-container"><p>We'll get back to you as soon as possible.</p></div></div></div></div></div></div></div></div></div></div></section> <section><div class="footer pv50 animate fadeIn no-delay"><div class="container text-center-touch"><div class="flexy flexy mb-footer is-vcentered footer-locations-container"><div class="flexy-item animate fadeIn footer-address"><div class="footer-location"><p class="ql-align-center">Newport Beach</p></div><div class="footer-location-address"><p><a href="https://maps.app.goo.gl/W5ZgvKv1oXoXhJ4s6" rel="noopener" target="_blank" aria-label="Open https://maps.app.goo.gl/W5ZgvKv1oXoXhJ4s6 in a new tab">901 Dover Dr, Suite 122 <strong>Newport Beach, CA 92660</strong></a></p></div><div class="footer-location-phone"><p class="ql-align-center"><a href="tel:(949) 247-8543">(949) 247-8543</a></p></div></div><div class="flexy-item animate fadeIn footer-address"><div class="footer-location"><p class="ql-align-center">Redlands</p></div><div class="footer-location-address"><p><a href="https://maps.app.goo.gl/kVP9RQF7c78j96L89" rel="noopener" target="_blank" aria-label="Open https://maps.app.goo.gl/kVP9RQF7c78j96L89 in a new tab">1740 Plum Lane, Suite A <strong>Redlands, CA 92374</strong></a></p></div><div class="footer-location-phone"><p class="ql-align-center"><a href="tel: (949) 247-8543">(949) 247-8543</a></p></div></div></div><div class="flexy flexy mb-footer is-vcentered footer-logo-container"><div class="flexy-item text-center footer-image is-visible-tablet mb35"><a href="/" aria-label="Go to johncompoginismd.com homepage" class><div data-gatsby-image-wrapper="" data-initial-width="893" data-initial-height="129" class="gatsby-image-wrapper gatsby-image-wrapper-constrained " style="position: relative !important" id="gatsby-img-rvtgq0k5i"><div class="placeholder-wrapper" style="display:block;"><img alt="" aria-hidden="true" fetchpriority="high" src="data:image/svg+xml;charset=utf-8,%3Csvg height='129' width='893' xmlns='http://www.w3.org/2000/svg' version='1.1'%3E%3C/svg%3E" style="max-width: 100%; display: block; position: static"></div><picture><img data-main-image="" style="object-fit: contain; display: block; margin: auto" decoding="async" loading="lazy" fetchpriority="low" class="footer-logo" alt="John Compoginis Logo" src="/_static_/logos/footer-logo.png"></picture></div></a></div><div class="flexy-item animate fadeIn footer-address"><a class="display-unset " href="tel:(949) 247-8543" data-location-footer-phone-link><p class="lead">(949) 247-8543</p></a></div><div class="flexy-item text-center footer-image is-hidden-tablet animate fadeIn"><a href="/" aria-label="Go to johncompoginismd.com homepage" class><div data-gatsby-image-wrapper="" data-initial-width="893" data-initial-height="129" class="gatsby-image-wrapper gatsby-image-wrapper-constrained " style="position: relative !important" id="gatsby-img-u0h8i2n6r"><div class="placeholder-wrapper" style="display:block;"><img alt="" aria-hidden="true" fetchpriority="high" src="data:image/svg+xml;charset=utf-8,%3Csvg height='129' width='893' xmlns='http://www.w3.org/2000/svg' version='1.1'%3E%3C/svg%3E" style="max-width: 100%; display: block; position: static"></div><picture><img data-main-image="" style="object-fit: contain; display: block; margin: auto" decoding="async" loading="lazy" fetchpriority="low" class="footer-logo" alt="John Compoginis Logo" src="/_static_/logos/footer-logo.png"></picture></div></a></div><div class="flexy-item animate fadeIn text-right"><p class="lead " data-location-footer-hours>Mon- Fri: 9am - 5:00pm</p></div></div><div class="flexy flexy is-vcentered mb50"><div class="flexy-item is-40 animate fadeIn"><a class href="/testimonials/" data-location-footer-rating-link><span class="ratingstars"><span class="ratings-number">4.9</span><div><span class="ratings-stars"><svg class="footer-star" width="16" height="15" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 23 22"><polygon points="15.893,13.597 23,8.403 14.215,8.403 11.5,0 8.785,8.403 0,8.403 7.107,13.597 4.393,22 11.5,16.807 18.607,22" fill="#FFF"></polygon></svg><svg class="footer-star" width="16" height="15" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 23 22"><polygon points="15.893,13.597 23,8.403 14.215,8.403 11.5,0 8.785,8.403 0,8.403 7.107,13.597 4.393,22 11.5,16.807 18.607,22" fill="#FFF"></polygon></svg><svg class="footer-star" width="16" height="15" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 23 22"><polygon points="15.893,13.597 23,8.403 14.215,8.403 11.5,0 8.785,8.403 0,8.403 7.107,13.597 4.393,22 11.5,16.807 18.607,22" fill="#FFF"></polygon></svg><svg class="footer-star" width="16" height="15" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 23 22"><polygon points="15.893,13.597 23,8.403 14.215,8.403 11.5,0 8.785,8.403 0,8.403 7.107,13.597 4.393,22 11.5,16.807 18.607,22" fill="#FFF"></polygon></svg><svg class="footer-star" width="16" height="15" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 23 22"><polygon points="15.893,13.597 23,8.403 14.215,8.403 11.5,0 8.785,8.403 0,8.403 7.107,13.597 4.393,22 11.5,16.807 18.607,22" fill="#FFF"></polygon></svg></span><span class="ratings-text">from 74+ Reviews</span></div></span></a></div><div class="flexy-item is-80 text-center animate fadeIn"><div class><a href="https://www.instagram.com/drcompoginis/" target="_blank" rel="noreferrer" class="footer-social-media-icon-container" aria-label="View John M. Compoginis, M.D. INC Instagram Page (Opens in a new tab)"><svg aria-hidden="true" focusable="false" class="footer-social-media-icon" width="100" height="100" viewB
1069ox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M4.69166 0.0548132C3.8379 0.0922779 3.25627 0.231432 2.74935 0.42946C2.22108 0.63284 1.77819 0.911149 1.3353 1.35537C0.88707 1.7996 0.620268 2.24917 0.412163 2.77368C0.21473 3.28213 0.0813297 3.86551 0.0439775 4.71649C0.00662526 5.56747 -0.00404779 5.84043 0.00128825 8.01338C0.00128825 10.1863 0.0119595 10.4593 0.0546478 11.3103C0.097336 12.1613 0.230738 12.7393 0.433508 13.2477C0.636277 13.7722 0.91375 14.2218 1.35664 14.666C1.79953 15.1103 2.24776 15.3832 2.77603 15.5866C3.28295 15.7846 3.86458 15.9184 4.71834 15.9559C5.57211 15.9934 5.84424 16.0041 8.01601 15.9987C10.1878 15.9987 10.4599 15.988 11.3137 15.9452C12.1674 15.9024 12.7437 15.7686 13.256 15.5705C13.7789 15.3672 14.2272 15.0889 14.67 14.6446C15.1129 14.2004 15.3851 13.7508 15.5878 13.2263C15.7853 12.7179 15.9187 12.1345 15.956 11.2835C15.9934 10.4272 16.004 10.1596 15.9987 7.98662C15.9987 5.81367 15.9827 5.54071 15.9454 4.68973C15.9027 3.83875 15.7693 3.25537 15.5718 2.74692C15.3637 2.22241 15.0916 1.77819 14.6487 1.33396C14.2005 0.88974 13.7522 0.616783 13.2293 0.413404C12.7224 0.215376 12.1408 0.0815737 11.287 0.044109C10.4332 0.00664437 10.1611 -0.00405991 7.98933 0.00129218C5.81756 0.00129218 5.54543 0.0119965 4.69166 0.0548132ZM4.78771 14.5162C4.00865 14.4841 3.58177 14.3503 3.29896 14.2432C2.92543 14.0987 2.65863 13.9274 2.37582 13.6438C2.09301 13.3655 1.92226 13.0979 1.77819 12.7232C1.66613 12.4396 1.53807 12.0167 1.50071 11.2407C1.46336 10.3951 1.45269 10.1435 1.44735 8.00803C1.44735 5.87254 1.44735 5.62099 1.49004 4.77536C1.52206 3.99396 1.65546 3.57114 1.76218 3.28748C1.90625 2.91283 2.07701 2.64523 2.35982 2.36692C2.63729 2.08861 2.90409 1.91199 3.27761 1.76748C3.56042 1.65509 3.98197 1.52664 4.76103 1.48917C5.60412 1.45171 5.86025 1.44101 7.99466 1.43565C10.1291 1.43565 10.3852 1.43565 11.2283 1.47847C12.0074 1.51058 12.4342 1.63903 12.7117 1.75143C13.0852 1.89593 13.352 2.0672 13.6348 2.34551C13.9123 2.62382 14.0884 2.89142 14.2325 3.26607C14.3445 3.54438 14.4726 3.97255 14.51 4.7486C14.5473 5.59423 14.558 5.84578 14.5633 7.98127C14.5633 10.1168 14.5633 10.3683 14.5206 11.2139C14.4886 11.9953 14.3606 12.4182 14.2485 12.7018C14.1044 13.0765 13.9337 13.3441 13.6509 13.6224C13.3734 13.9007 13.1066 14.0773 12.7331 14.2218C12.4502 14.3342 12.0287 14.4627 11.2496 14.5001C10.4066 14.5376 10.1504 14.5483 8.01601 14.5536C5.8816 14.5536 5.62547 14.5536 4.78237 14.5162M11.3083 3.721C11.3083 4.25086 11.7406 4.67902 12.2688 4.67902C12.7971 4.67902 13.2293 4.2455 13.2293 3.71565C13.2293 3.18579 12.7971 2.75762 12.2635 2.75762C11.7352 2.75762 11.303 3.19114 11.303 3.721M3.89659 8.00803C3.89659 10.2773 5.74286 12.1131 8.01601 12.1077C10.2838 12.1077 12.1248 10.2613 12.1194 7.99197C12.1194 5.72268 10.2732 3.88691 8 3.89227C5.73219 3.89227 3.89126 5.73874 3.89659 8.00803ZM5.33732 8.00268C5.33732 6.53085 6.52726 5.33198 8 5.33198C9.47275 5.33198 10.668 6.52015 10.6734 7.99197C10.6734 9.4638 9.48342 10.6627 8.01067 10.6627C6.53793 10.6627 5.34266 9.4745 5.33732 8.00268Z" fill="url(#instagram-icon-svg-gradient-footer)"></path> <defs> <linearGradient id="instagram-icon-svg-gradient-footer" x1="0" y1="0" x2="16" y2="0" gradientUnits="userSpaceOnUse"> <stop stop-color="#ffffff"></stop> <stop offset="0.08" stop-color="#ffffff"></stop> <stop offset="0.24" stop-color="#ffffff"></stop> <stop offset="0.47" stop-color="#ffffff"></stop> <stop offset="0.56" stop-color="#ffffff"></stop> <stop offset="0.69" stop-color="#ffffff"></stop> <stop offset="0.75" stop-color="#ffffff"></stop> <stop offset="0.89" stop-color="#ffffff"></stop> <stop offset="1" stop-color="#ffffff"></stop> </linearGradient> </defs> </svg></a><a href="https://www.facebook.com/Drcompoginis/" target="_blank" rel="noreferrer" class="footer-social-media-icon-container" aria-label="View John M. Compoginis, M.D. INC Facebook Page (Opens in a new tab)"><svg aria-hidden="true" focusable="false" class="footer-social-media-icon" width="47" height="101" viewBox="0 0 47 101" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M31.3634 100.651V50.6455H44.9161L46.7122 33.4132H31.3634L31.3864 24.7883C31.3864 20.2938 31.8057 17.8856 38.1436 17.8856H46.6162V0.651367H33.0615C16.7802 0.651367 11.0496 9.01088 11.
10690496 23.069V33.4152H0.900879V50.6475H11.0496V100.651H31.3634Z" fill="url(#facebook-icon-svg-gradient-footer)"></path> <defs> <linearGradient id="facebook-icon-svg-gradient-footer" x1="0" y1="0" x2="47" y2="0" gradientUnits="userSpaceOnUse"> <stop stop-color="#ffffff"></stop> <stop offset="0.08" stop-color="#ffffff"></stop> <stop offset="0.24" stop-color="#ffffff"></stop> <stop offset="0.47" stop-color="#ffffff"></stop> <stop offset="0.56" stop-color="#ffffff"></stop> <stop offset="0.69" stop-color="#ffffff"></stop> <stop offset="0.75" stop-color="#ffffff"></stop> <stop offset="0.89" stop-color="#ffffff"></stop> <stop offset="1" stop-color="#ffffff"></stop> </linearGradient> </defs> </svg></a><a href="https://www.youtube.com/@drcompoginis" target="_blank" rel="noreferrer" class="footer-social-media-icon-container" aria-label="View John M. Compoginis, M.D. INC YouTube Page (Opens in a new tab)"><svg aria-hidden="true" focusable="false" class="footer-social-media-icon" width="98" height="101" viewBox="0 0 98 101" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M23.503 21.7716V39.6931C23.503 41.4348 24.9165 42.8483 26.6582 42.8483C28.3999 42.8483 29.8134 41.4348 29.8134 39.6931V21.7716L41.8031 5.78532C42.8506 4.33393 42.5183 2.3104 41.0669 1.26288C39.6155 0.215353 37.592 0.5477 36.5445 1.99909L26.4479 15.4612L16.5616 1.99909C15.5141 0.606597 13.5368 0.320526 12.1443 1.36805C10.7518 2.41557 10.4658 4.39283 11.5133 5.78532L23.503 21.7716ZM38.4376 20.7619V33.3827C38.4376 38.6119 42.6739 42.8483 47.9031 42.8483C53.1324 42.8483 57.3687 38.6119 57.3687 33.3827V20.7619C57.3687 15.5327 53.1324 11.2964 47.9031 11.2964C42.6739 11.2964 38.4376 15.5327 38.4376 20.7619ZM44.748 20.7619C44.748 19.0203 46.1615 17.6068 47.9031 17.6068C49.6448 17.6068 51.0583 19.0203 51.0583 20.7619V33.3827C51.0583 35.1244 49.6448 36.5379 47.9031 36.5379C46.1615 36.5379 44.748 35.1244 44.748 33.3827V20.7619ZM65.1936 39.4407C67.3559 41.603 70.2966 42.8146 73.355 42.8062C75.3701 42.7852 77.3432 42.2341 79.0764 41.2076C79.6191 42.1878 80.6498 42.7978 81.7689 42.8062C83.5105 42.8062 84.924 41.3927 84.924 39.651V14.4095C84.924 12.6678 83.5105 11.2543 81.7689 11.2543C80.0272 11.2543 78.6137 12.6678 78.6137 14.4095V31.2372C78.6137 34.14 76.2578 36.4958 73.355 36.4958C70.4522 36.4958 68.0964 34.14 68.0964 31.2372V14.4095C68.0964 12.6678 66.6828 11.2543 64.9412 11.2543C63.1995 11.2543 61.786 12.6678 61.786 14.4095V31.2372C61.7776 34.3166 63.0018 37.2741 65.1936 39.4407ZM76.5102 73.3064C76.5102 72.1453 75.5678 71.2029 74.4067 71.2029C73.2456 71.2029 72.3033 72.1453 72.3033 73.3064V75.4098H76.5102V73.3064ZM57.5791 71.2029C56.418 71.2029 55.4756 72.1453 55.4756 73.3064V81.7202C55.4756 82.8813 56.418 83.8237 57.5791 83.8237C58.7402 83.8237 59.6825 82.8813 59.6825 81.7202V73.3064C59.6825 72.1453 58.7402 71.2029 57.5791 71.2029ZM78.6137 50.1683H19.7168C9.26259 50.1683 0.785645 58.6453 0.785645 69.0995V81.7202C0.785645 92.1744 9.26259 100.651 19.7168 100.651H78.6137C89.0679 100.651 97.5448 92.1744 97.5448 81.7202V69.0995C97.5448 58.6453 89.0679 50.1683 78.6137 50.1683ZM32.3375 66.996H26.0272V85.843C26.0272 87.0041 25.0848 87.9465 23.9237 87.9465C22.7626 87.9465 21.8202 87.0041 21.8202 85.843V66.996H15.5099C14.3488 66.996 13.4064 66.0536 13.4064 64.8925C13.4064 63.7314 14.3488 62.7891 15.5099 62.7891H32.3375C33.4987 62.7891 34.441 63.7314 34.441 64.8925C34.441 66.0536 33.4987 66.996 32.3375 66.996ZM46.9776 85.9271C46.986 87.0883 46.0479 88.0348 44.8868 88.0432C44.3104 88.0474 43.7593 87.816 43.3597 87.3996C42.5225 87.8076 41.6012 88.0264 40.6672 88.0306C37.1839 88.0306 34.3569 85.2036 34.3569 81.7202V69.0995C34.3569 67.9384 35.2992 66.996 36.4603 66.996C37.6214 66.996 38.5638 67.9384 38.5638 69.0995V81.7202C38.5638 82.8813 39.5061 83.8237 40.6672 83.8237C41.8284 83.8237 42.7707 82.8813 42.7707 81.7202V69.0995C42.7707 67.9384 43.7131 66.996 44.8742 66.996C46.0353 66.996 46.9776 67.9384 46.9776 69.0995V85.9271ZM63.8053 81.7202C63.8053 85.2036 60.9783 88.0306 57.4949 88.0306C56.5315 88.0264 55.5808 87.795 54.7184 87.3575C53.8686 88.1484 52.535 88.0979 51.7441 87.2439C51.3907 86.8611 51.1888 86.3605 51.1845 85.843V60.6015C51.1845 59.4404 52.1269 58.498 53.288 58.498
1069C54.4491 58.498 55.3915 59.4404 55.3915 60.6015V67.5429C56.0646 67.2947 56.7755 67.1685 57.4949 67.1643C60.9783 67.1643 63.8053 69.9913 63.8053 73.4747V81.7202ZM74.7012 88.0306C71.0496 87.8161 68.1595 84.8712 68.0122 81.2154V73.3064C68.0122 69.8231 70.8393 66.996 74.3226 66.996C77.8059 66.996 80.633 69.8231 80.633 73.3064V77.5133C80.633 78.6744 79.6906 79.6168 78.5295 79.6168H72.3033V81.2154C72.4421 82.549 73.4602 83.6218 74.7854 83.8237C75.753 83.8237 77.2674 83.403 77.2674 82.2671C77.2674 81.106 78.2098 80.1637 79.3709 80.1637C80.532 80.1637 81.4744 81.106 81.4744 82.2671C81.2809 85.6537 78.3739 88.2409 74.9873 88.0474C74.92 88.0432 74.8527 88.039 74.7854 88.0306H74.7012Z" fill="url(#youtube-icon-svg-gradient-footer)"></path> <defs> <linearGradient id="youtube-icon-svg-gradient-footer" x1="0" y1="0" x2="98" y2="0" gradientUnits="userSpaceOnUse"> <stop stop-color="#ffffff"></stop> <stop offset="0.08" stop-color="#ffffff"></stop> <stop offset="0.24" stop-color="#ffffff"></stop> <stop offset="0.47" stop-color="#ffffff"></stop> <stop offset="0.56" stop-color="#ffffff"></stop> <stop offset="0.69" stop-color="#ffffff"></stop> <stop offset="0.75" stop-color="#ffffff"></stop> <stop offset="0.89" stop-color="#ffffff"></stop> <stop offset="1" stop-color="#ffffff"></stop> </linearGradient> </defs> </svg></a><a href="https://www.yelp.com/biz/john-compoginis-md-newport-beach-2" target="_blank" rel="noreferrer" class="footer-social-media-icon-container" aria-label="View John M. Compoginis, M.D. INC Yelp Page (Opens in a new tab)"><svg aria-hidden="true" focusable="false" class="footer-social-media-icon" width="75.75" height="101" viewBox="0 0 75.75 101" fill="none" xmlns="http://www.w3.org/2000/svg"> <g fill="url(#yelp-icon-svg-gradient-footer)"> <path d="M29.457 71.4628L15.631 88.3984C13.685 90.9044 14.614 93.8917 17.466 95.3655L31.986 98.8984C35.2 100.832 38.91 98.7334 39.07 95.6005L39.77 73.1696C39.911 69.099 33.925 67.02 29.457 71.4628Z"></path> <path d="M27.1589 54.7571L6.6536 47.9634C3.7717 46.3325 0.711 49.0197 0.61315 52.9623L0.14648 68.0768C0.0485 71.876 3.3657 74.2866 6.6062 73.1073L28.3768 65.5756C32.861 63.4096 32.9542 57.4714 27.1589 54.7571Z"></path> <path d="M50.6675 57.1624L71.6635 51.2976C73.697 50.49 74.85 46.5158 72.594 43.4578L64.108 31.3795C61.731 28.2921 56.634 28.071 54.288 30.624L42.0335 48.7857C39.015 53.323 42.669 58.336 50.6675 57.1624Z"></path> <path d="M35.5957 5.6778C35.7697 2.9975 32.1927 -0.7654 28.6845 0.1927L12.0592 4.7407C8.4726 5.7126 6.9445 9.9578 9.1072 12.9918L28.1735 46.048C28.3295 46.3163 28.4983 46.5736 28.66 46.812C32.0233 51.2457 37.243 48.9027 38.6653 45.5158C38.872 44.9763 38.9342 44.4733 38.8803 43.983L35.5957 5.6778Z"></path> <path d="M72.469 71.6512L51.3815 65.7875C47.786 64.1554 45.4277 69.3124 48.3437 73.247L61.509 91.3039C63.292 93.8727 66.8777 94.0185 69.181 90.7815L77.412 80.913C79.717 77.6705 78.082 73.141 72.469 71.6512Z"></path> </g> <defs> <linearGradient id="yelp-icon-svg-gradient-footer" x1="0" y1="0" x2="101" y2="0" gradientUnits="userSpaceOnUse"> <stop stop-color="#ffffff"></stop> <stop offset="0.08" stop-color="#ffffff"></stop> <stop offset="0.24" stop-color="#ffffff"></stop> <stop offset="0.47" stop-color="#ffffff"></stop> <stop offset="0.56" stop-color="#ffffff"></stop> <stop offset="0.69" stop-color="#ffffff"></stop> <stop offset="0.75" stop-color="#ffffff"></stop> <stop offset="0.89" stop-color="#ffffff"></stop> <stop offset="1" stop-color="#ffffff"></stop> </linearGradient> </defs> </svg></a><a href="https://maps.app.goo.gl/CHkgTwCaG5sdUePH6" target="_blank" rel="noreferrer" class="footer-social-media-icon-container" aria-label="View John M. Compoginis, M.D. INC Google Page (Opens in a new tab)"><svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" width="101" height="101" viewBox="0 0 23 23" fill="none" class="footer-social-media-icon"> <path d="M0.265182 11.5C0.265182 5.4346 5.19978 0.5 11.2652 0.5C13.7148 0.5 16.0334 1.28812 17.9704 2.7792L15.4142 6.09973C14.2165 5.17783 12.7818 4.69048 11.2652 4.69048C7.51041 4.69048 4.45566 7.74523 4.45566 11.5C4.45566 15.2548 7.51041 18.3095 11.2652 18.3095C14.2893 18.3095 16.8593 16.3282 17.7449 13.5952H11.2652V9.40476H22.2652V11.5C22.2652 17.5654 17.3306 22.5 11.2652 22.5C5.19978 22.5 0.265182 17.5654 0.265182 11.5Z" fill="url(#google-icon-svg-gradient-footer)"></path> <defs> <linearGradient id="google-icon-svg-gradient-footer" x1="0" y1="0" x2="20" y2="0" gradientUnits="userSpaceOnUse"> <stop stop-color="#ffffff"></stop> <stop offset="0.08" stop-color="#ffffff"></stop> <stop offset="0.24" stop-color="#ffffff"></stop> <stop offset="0.47" stop-color="#ffffff"></stop> <stop offset="0.56" stop-color="#ffffff"></stop> <stop offset="0.69" stop-color="#ffffff"></stop> <stop offset="0.75" stop-color="#ffffff"></stop> <stop offset="0.89" stop-color="#ffffff"></stop> <stop offset="1" stop-color="#ffffff"></stop> </linearGradient> </defs> </svg></a><a href="https://www.realself.com/dr/john-compoginis-pasadena-ca" target="_blank" rel="noreferrer" class="footer-social-media-icon-container" aria-label="View John M. Compoginis, M.D. INC RealSelf Page (Opens in a new tab)"><svg aria-hidden="true" focusable="false" class="footer-social-media-icon" width="101" height="101" viewB
1069ox="0 0 101 101" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill="url(#realself-icon-svg-gradient-footer)" d="M0.151028 70.6487C0.468031 46.3273 8.32098 26.2914 25.343 11.7154C32.164 5.87585 39.8705 2.18154 48.3269 1.02993C55.701 0.0235476 62.8915 0.782794 69.448 5.34081C74.5288 8.87462 77.7382 14.1002 79.0369 20.7907C80.2524 27.0481 78.5865 32.4851 74.8983 37.0737C71.5403 41.2521 67.3995 44.3273 63.4556 47.67C60.6266 50.0675 57.7911 52.4497 55.9 56.0217C54.8746 57.9581 54.7107 60.0294 55.067 62.1594C55.4627 64.5288 57.1089 66.1391 59.2864 66.511C61.5557 66.8983 63.7813 66.5442 65.7577 65.2728C68.5561 63.4715 71.2123 61.3772 73.9495 59.4485C76.28 57.8077 78.534 55.9376 81.0089 54.6663C88.1622 50.9924 95.7812 54.6841 98.7807 63.1174C100.211 67.1378 100.589 71.2194 99.5 75.5379C97.2023 84.6463 92.3794 91.2477 85.307 95.714C82.4168 97.5382 79.4216 99.1484 76.092 99.5C74.6207 99.6554 73.0991 99.658 71.6408 99.4083C69.6295 99.0643 68.1757 96.1777 68.4446 93.5407C68.6872 91.161 69.5508 89.133 71.0484 87.5355C72.417 86.0756 73.9102 84.7762 75.3181 83.3673C76.0898 82.5953 76.855 81.7953 77.5262 80.9087C80.2371 77.3341 78.6849 72.2105 75.8624 70.2028C73.368 68.427 70.6898 68.3123 67.9745 69.413C64.8482 70.6792 62.3515 73.0997 59.8636 75.5405C57.0259 78.3227 54.3368 81.3647 50.9066 83.189C48.0514 84.7074 45.1306 85.2705 42.1814 83.4539C40.4367 82.3788 39.2518 80.6641 38.4188 78.6488C36.5015 74.0092 36.6349 69.2856 38.5784 64.7658C39.794 61.9403 41.3528 59.2906 42.9247 56.702C45.03 53.2395 47.389 49.986 49.4768 46.5133C52.649 41.2394 54.5379 35.4584 54.14 28.857C53.834 23.7665 52.5966 19.1525 49.1751 15.7257C45.6728 12.2199 41.7682 10.7829 37.1268 12.5333C34.0748 13.6823 31.3529 15.3766 28.6202 17.2977C24.2652 20.3627 21.4231 24.7525 19.4314 29.9883C17.5928 34.824 16.4866 39.9757 16.3991 45.242C16.3291 49.4994 16.7642 53.8 17.313 58.0243C17.689 60.9212 18.4017 63.8409 19.4117 66.5212C20.483 69.3646 22.0068 71.9914 23.4672 74.6131C25.5135 78.287 27.6801 81.9456 28.2944 86.3177C28.618 88.6209 28.4103 91.1865 27.879 93.4515C27.2122 96.2974 25.0938 97.9662 22.866 99.1229C14.7135 103.352 6.95677 98.2006 3.43038 90.175C1.26382 85.2425 0.428679 79.9329 0.159773 74.4704C0.0963719 73.2016 0.151028 71.9251 0.151028 70.6512V70.6487ZM51.3001 55.9962C51.2127 55.9606 52.2166 53.6736 52.1291 53.638C51.9521 54.0176 56.7538 69.2652 56.6291 69.6678C55.2606 74.0729 50.4431 66.7454 53.6132 69.6678C53.9105 69.9429 54.3171 70.1595 54.6888 70.1977C55.0014 70.2308 55.4868 70.0703 55.6201 69.8053C55.7557 69.5429 55.6573 68.9416 55.4693 68.6665C55.0451 68.0397 54.5139 67.5098 54.0067 66.9645C51.4947 64.2613 50.6093 60.9517 51.2499 57.0561C51.3067 56.7122 51.2826 56.3529 51.2979 56.0013L51.3001 55.9962ZM51.2728 8.972C51.7866 9.17582 53.1283 7.59427 53.5 7.5C56.4186 6.7433 58.4415 7.86625 61.5 7C59 9.5 53.1158 7.28535 51.2728 8.972ZM75.1607 60.4804C75.2066 60.7326 75.2525 60.9848 75.2962 61.2371C75.6876 61.2626 76.1751 61.474 76.4549 61.2804C78.1974 60.0778 79.9004 58.7988 81.5948 57.5046C81.7828 57.3619 81.8265 56.9619 81.938 56.6816C81.6778 56.6357 84.0773 62.3326 81.5948 59.4485C79.5791 60.7275 77.8607 65.7153 75.8624 67.0299L75.1607 60.4804ZM74.1265 88.8902C76.3434 88.5921 82.0522 85.5789 82.0937 83.5559C81.5 89 77 90.5 74.1265 88.8902Z"></path> <defs> <linearGradient id="realself-icon-svg-gradient-footer" x1="0" y1="0" x2="98" y2="0" gradientUnits="userSpaceOnUse"> <stop stop-color="#ffffff"></stop> <stop offset="0.08" stop-color="#ffffff"></stop> <stop offset="0.24" stop-color="#ffffff"></stop> <stop offset="0.47" stop-color="#ffffff"></stop> <stop offset="0.56" stop-color="#ffffff"></stop> <stop offset="0.69" stop-color="#ffffff"></stop> <stop offset="0.75" stop-color="#ffffff"></stop> <stop offset="0.89" stop-color="#ffffff"></stop> <stop offset="1" stop-color="#ffffff"></stop> </linearGradient> </defs> </svg></a></div></div><div class="flexy-item is-40 animate fadeIn"><a class="influx-link " href="https://www.influxmarketing.com/" target="_blank" rel="noopener"><svg width="68" class="influx-footer-logo" height="17" viewBox="0 0 68 17" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#clip0)"><path class="footer-influx-logo-letter" d="M24.0794 1.75391H20.6508V15.1743H24.0794V1.75391Z" fill="#424648"></path><path class="footer-influx-logo-letter" d="M25.6593 5.11066H28.4717V6.1793H28.5078C28.8159 5.69087 29.4518 4.76318 31.2481 4.76318C32.2085 4.76318 33.2804 5.16311 33.8245 5.63515C34.3687 6.10719 34.9849 6.90375 34.9849 8.88042V15.1743H31.9725V9.68027C31.9725 8.97221 31.9725 7.59542 30.3926 7.59542C28.6684 7.59542 28.6684 9.08366 28.6684 9.69994V15.1776H25.656V5.11066H25.6593Z" fill="#424648"></path><path class="footer-influx-logo-letter" d="M36.5059 7.39541H35.3816V5.1106H36.5059V4.58612C36.50
106959 1.75715 38.8824 1.50146 40.3509 1.50146H40.7868V3.76988H40.4427C40.1903 3.76988 39.5183 3.86167 39.5183 4.71396V5.11388H40.7868V7.39869H39.5183V15.1808H36.5059V7.39541Z" fill="#424648"></path><path class="footer-influx-logo-letter" d="M45.1071 1.75391H42.0947V15.1743H45.1071V1.75391Z" fill="#424648"></path><path class="footer-influx-logo-letter" d="M55.8816 15.174H53.0331V14.1053H52.997C52.3808 15.3936 51.1483 15.5018 50.3845 15.5018C49.7683 15.5018 48.3162 15.3576 47.4279 14.2332C46.6281 13.2367 46.5199 12.5089 46.5199 11.1321V5.11035H49.5323V10.6798C49.5323 11.3682 49.5323 12.6925 51.1483 12.6925C52.0202 12.6925 52.8725 12.2401 52.8725 10.6437V5.11035H55.8849V15.174H55.8816Z" fill="#424648"></path><path class="footer-influx-logo-letter" d="M63.9191 5.11035L62.3063 7.75574L60.6707 5.11035H57.0617L60.4543 9.78814L56.6257 15.174H60.2544L62.3063 12.0566L64.319 15.174H68L64.1026 9.78814L67.492 5.11035H63.9191Z" fill="#424648"></path><path d="M17.0025 0H0V17H17.0025V0Z" fill="url(#paint0_linear)"></path><path d="M7.08679 9.19177L9.74517 5.31055V13.0664H7.08679V9.19177Z" fill="white"></path><path d="M9.74517 3.93701H7.08679V7.81823L9.74517 3.93701Z" fill="#F9B78E"></path></g><defs><linearGradient id="paint0_linear" x1="17.8371" y1="0.21739" x2="-0.94874" y2="5.12118" gradientUnits="userSpaceOnUse"><stop stop-color="#EA1877"></stop><stop offset="1" stop-color="#FF8732"></stop></linearGradient><clipPath id="clip0"><rect width="68" height="17" fill="white"></rect></clipPath></defs></svg><span class="profession-text">Plastic Surgeon Marketing</span></a></div></div></div><div class="footer-bottom-container"><div><p><a href="/sitemap/">Sitemap</a> | <a href="/privacy-policy/">Privacy Policy</a> | <a href="/accessibility/">Accessibility</a> | <a href="/open-payment-database-notice/">Notice of Open Payment Database</a></p></div><div><p><strong>Accessibility:</strong> If you are visually impaired or have some other impairment and you wish to discuss potential accommodations related to using this website, please contact our office at <a href="tel:(949) 247-8543">(949) 247-8543</a>.</p></div></div></div></section>
1069<script type="module">function n(e){const r=e.getBoundingClientRect().height;document.body.style.setProperty("--mobile-cta-height",`${r}px`)}const t=document.querySelector(".mobile-cta");t&&(n(t),new ResizeObserver(()=>{n(t)}).observe(t));let o=document.querySelectorAll(".dynamic-full-year-container");o.length>0&&o.forEach(e=>{e.textContent=`${new Date().getFullYear()}`});</script>
1069 1070
1071<script> 1072 // Inject wrapper for left nav items for easy centering icons 1073 document.addEventListener("DOMContentLoaded", () => { 1074 const container = document.querySelector(".nav-left-container"); 1075 if (!container) return; 1076 1077 const navLink = container.querySelector(".nav-left-link"); 1078 const secondNavLink = container.querySelector(".second-nav-link-left"); 1079 const socialIcons = container.querySelector(".header-left-social-icons"); 1080 1081 if (!navLink || !socialIcons) return; 1082 1083 // Prevent duplicate wrapper if script runs more than once 1084 if (container.querySelector(".nav-left-wrapper")) return; 1085 1086 const wrapper = document.createElement("div"); 1087 wrapper.classList.add("nav-left-wrapper"); 1088 1089 container.insertBefore(wrapper, navLink); 1090 1091 wrapper.appendChild(navLink); 1092 1093 if (secondNavLink) { 1094 wrapper.appendChild(secondNavLink); 1095 } 1096 1097 wrapper.appendChild(socialIcons); 1098 }); 1099</script>
vendor: 1 bytes, line 1099
1099
1100<script> 1101 //Add nav right link wrapper 1102document.addEventListener('DOMContentLoaded', () => { 1103 const phoneLink = document.querySelector('.nav-right-link[href*="tel:"]'); 1104 const subtext = document.querySelector('.nav-right-subtext'); 1105 1106 if (phoneLink && subtext) { 1107 const wrapper = document.createElement('div'); 1108 wrapper.className = 'nav-right-link-wrapper'; 1109 1110 phoneLink.parentNode.insertBefore(wrapper, phoneLink); 1111 1112 wrapper.appendChild(phoneLink); 1113 wrapper.appendChild(subtext); 1114 } 1115}); 1116</script>
vendor: 1 bytes, line 1116
1116
1117<script> 1118 //Add language button dynamically 1119 document.addEventListener("DOMContentLoaded", () => { 1120 const navRightLinks = document.querySelector(".nav-right-links"); 1121 if (!navRightLinks) return; 1122 1123 const isSpanishPage = window.location.pathname.includes("/es/"); 1124 1125 const languageLink = document.createElement("a"); 1126 languageLink.className = "nav-link nav-right-link second-nav-link-right"; 1127 1128 if (isSpanishPage) { 1129 languageLink.href = "/"; 1130 languageLink.textContent = "English"; 1131 } else { 1132 languageLink.href = "/es/"; 1133 languageLink.textContent = "Español"; 1134 } 1135 1136 navRightLinks.appendChild(languageLink); 1137 }); 1138</script>
vendor: 1 bytes, line 1138
1138
1139<script> 1140 // Add mobile nav language links dynamically 1141 document.addEventListener("DOMContentLoaded", () => { 1142 const targetMenu = document.querySelector(".mobile-contact-menu ul"); 1143 const isSpanishPage = window.location.pathname.includes("/es/"); 1144 1145 if (!targetMenu) return; 1146 1147 const languageLink = isSpanishPage 1148 ? '<a class="no-menu mobile-en-link" href="/"> English </a>' 1149 : '<a class="no-menu mobile-es-link" href="/es/"> Español </a>'; 1150 1151 targetMenu.innerHTML = ` 1152 <a class="no-menu" href="/contact/"> Schedule Appointment </a> 1153 ${languageLink} 1154 <div class="no-menu location-name">Newport Beach</div> 1155 <a class="no-menu newport" href="tel:9496593599">(949) 659-3599</a> 1156 1157 <div class="no-menu location-name">Redlands</div> 1158 <a class="no-menu redlands" href="tel:9492478543">(949) 247-8543</a> 1159 `; 1160 }); 1161</script>
vendor: 1 bytes, line 1161
1161
1162<script> 1163 //Add second masthead button for Spanish homepage 1164document.addEventListener('DOMContentLoaded', () => { 1165 const originalButton = document.querySelector('.location-individual-page .location-masthead-button'); 1166 1167 if (originalButton) { 1168 const wrapper = document.createElement('div'); 1169 wrapper.className = 'location-multi-button-container'; 1170 1171 originalButton.parentNode.insertBefore(wrapper, originalButton); 1172 wrapper.appendChild(originalButton); 1173 1174 const newButton = originalButton.cloneNode(true); 1175 newButton.href = '/services/'; 1176 1177 newButton.childNodes.forEach(node => { 1178 if (node.nodeType === Node.TEXT_NODE && node.textContent.trim().length > 0) { 1179 node.textContent = 'Ver procedimientos '; 1180 } 1181 }); 1182 1183 wrapper.appendChild(newButton); 1184 } 1185}); 1186</script>
1186 1187 1188<!-- The following script adds "I agree to the terms of use of use" line to the contact form-->
1189<script> 1190 let TermsLink = document.querySelector(".terms-link"); 1191 if(TermsLink) { 1192 let TermsLine = document.createElement("p"); 1193 TermsLine.style.display = "inline"; 1194 TermsLine.innerHTML = `I agree to the <a href="/terms-of-use/">terms of use</a>.`; 1195 TermsLink.appendChild(TermsLine); 1196 } 1197</script>
1197 1198
1199<script> 1200 //hiding specific galleries on the index 1201(function () { 1202 if (window.location.pathname !== '/gallery/') return; 1203 1204 const spanishHeadings = ['Cuerpo', 'Hombres', 'Rostro', 'Senos']; 1205 1206 document.querySelectorAll('.gallery-index-display').forEach(function (display) { 1207 const heading = display.querySelector('h2, h3, h4'); 1208 if (heading && spanishHeadings.includes(heading.textContent.trim())) { 1209 display.remove(); 1210 } 1211 }); 1212})(); 1213</script>
1213 1214
1215<script> 1216 //update gallery masthead text 1217 document.addEventListener("DOMContentLoaded", () => { 1218 const target = document.querySelector( 1219 ".gallery-page .gallery-masthead-outer h1 span.lead.white.uppercase" 1220 ); 1221 1222 if (!target) return; 1223 1224 target.textContent = target.textContent.replace(/\bINC\b/g, "").trim(); 1225 }); 1226</script>
1226 1227 1228<!--
1228<script> 1229 /*lazy load javascript*/ 1230 let loadGoHighLevelChatScripts = setInterval(function() { 1231 if (document.documentElement.scrollTop > 30 || document.body.scrollTop > 30) { 1232 1233 var ghlchat = document.createElement("script"); 1234 ghlchat.async = true; 1235 ghlchat.type = "text/javascript"; 1236 ghlchat.setAttribute("data-resources-url", "https://widgets.leadconnectorhq.com/chat-widget/loader.js"); 1237 ghlchat.setAttribute("data-widget-id", "69d675db3d6e165f217ceda3"); 1238 ghlchat.src = "https://widgets.leadconnectorhq.com/loader.js"; 1239 var elem = document.body; 1240 elem.appendChild(ghlchat); 1241 1242 let checkChatWidget = setInterval(function() { 1243 const chatWidget = document.querySelector('chat-widget'); 1244 if (chatWidget && chatWidget.shadowRoot) { 1245 const styleSheet = chatWidget.shadowRoot.querySelector('style') || document.createElement('style'); 1246 styleSheet.textContent += ` 1247 @media (max-width: 840px) { 1248 .lc_text-widget--bubble { 1249 bottom: 60px !important; 1250 } 1251 .lc_text-widget--box { 1252 bottom: 50px !important; 1253 } 1254 .lc_text-widget--prompt { 1255 bottom: 40px !important; 1256 } 1257 } 1258 `; 1259 chatWidget.shadowRoot.appendChild(styleSheet); 1260 clearInterval(checkChatWidget); 1261 } 1262 }, 200); 1263 1264 clearInterval(loadGoHighLevelChatScripts); 1265 } 1266 }, 500); 1267</script>
1267 --> 1268 1269
1270<script> 1271 // Google Translate cookie injection only when URL contains /es/ 1272 document.addEventListener("DOMContentLoaded", function () { 1273 const isSpanishSection = window.location.pathname.includes("/es/"); 1274 const host = window.location.hostname; 1275 const baseHost = host.startsWith("www.") ? host.substring(4) : host; 1276 1277 function deleteTranslateCookies() { 1278 const pastDate = "Thu, 01 Jan 1970 00:00:00 UTC"; 1279 1280 document.cookie = `googtrans=; expires=${pastDate}; path=/;`; 1281 document.cookie = `googtrans=; expires=${pastDate}; path=/; domain=${host};`; 1282 document.cookie = `googtrans=; expires=${pastDate}; path=/; domain=.${baseHost};`; 1283 } 1284 1285 if (!isSpanishSection) { 1286 deleteTranslateCookies(); 1287 return; 1288 } 1289 1290 // Set Spanish translation cookie 1291 document.cookie = "googtrans=/en/es; path=/;"; 1292 document.cookie = "googtrans=/en/es; path=/; domain=" + host + ";"; 1293 document.cookie = "googtrans=/en/es; path=/; domain=." + baseHost + ";"; 1294 1295 // Hidden Google Translate container 1296 const container = document.createElement("div"); 1297 container.id = "google_translate_element"; 1298 container.style.position = "absolute"; 1299 container.style.left = "-9999px"; 1300 container.style.top = "-9999px"; 1301 container.style.width = "1px"; 1302 container.style.height = "1px"; 1303 container.style.overflow = "hidden"; 1304 container.setAttribute("aria-hidden", "true"); 1305 document.body.appendChild(container); 1306 1307 // Init Google Translate 1308 window.googleTranslateElementInit = function () { 1309 new google.translate.TranslateElement( 1310 { 1311 pageLanguage: "en", 1312 includedLanguages: "es", 1313 autoDisplay: false, 1314 layout: google.translate.TranslateElement.InlineLayout.SIMPLE, 1315 }, 1316 "google_translate_element" 1317 ); 1318 }; 1319 1320 const gtScript = document.createElement("script"); 1321 gtScript.src = 1322 "https://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"; 1323 document.body.appendChild(gtScript); 1324 }); 1325</script>
1325 1326 1327<!-- Manipulating the DOB field in the form for label -->
1328<script> 1329document.addEventListener("DOMContentLoaded", function() { 1330 // Find the Date of Birth input field 1331 const dobInput = document.querySelector('input[name="Date-of-Birth"]'); 1332 1333 if (dobInput) { 1334 // On page load, if the field is empty, change it to 'text' to show the placeholder 1335 if (!dobInput.value) { 1336 dobInput.type = 'text'; 1337 } 1338 1339 // When the user clicks into the field (focus), switch it back to a 'date' picker 1340 dobInput.addEventListener('focus', function() { 1341 this.type = 'date'; 1342 }); 1343 1344 // When the user clicks out (blur), check if they left it empty 1345 // If it's empty, revert it back to 'text' so the placeholder returns 1346 dobInput.addEventListener('blur', function() { 1347 if (!this.value) { 1348 this.type = 'text'; 1349 } 1350 }); 1351 } 1352}); 1353</script>
1353
1353<script defer src="//s.ksrndkehqnwntyxlhgto.com/164547.js"></script>
1353<script defer>var $wc_load=function(a){return JSON.parse(JSON.stringify(a))},$wc_leads=$wc_leads||{doc:{url:$wc_load(document.URL),ref:$wc_load(document.referrer),search:$wc_load(location.search),hash:$wc_load(location.hash)}};</script>
1353<template id="cmp-tracking-scripts"> 1354<link rel="preconnect" href="https://www.googletagmanager.com/" /> 1355<link rel="preconnect" href="https://www.google-analytics.com/"/>
vendor: 59 bytes, lines 1355-1357
1355 1356 1357<script src="https://www.googletagmanager.com/gtag/js?id=
1357G-3WS8EG0B85
vendor: 12 bytes, line 1357
1357"></script>
1358<script> 1359
vendor: 133 bytes, lines 1359-1362
1359window.dataLayer = window.dataLayer || []; 1360 function gtag(){dataLayer.push(arguments);} 1361 gtag('js', new Date()); 1362 gtag('config', '
1362G-3WS8EG0B85
vendor: 6 bytes, lines 1362-1363
1362'); 1363
1363gtag('config', 'AW-18009010413'); 1364 1365</script>
vendor: 1 bytes, line 1365
1365
1366<script> 1367 let allTelTags = document.querySelectorAll("a[href^='tel']"); 1368 for (let tag of allTelTags) { 1369 tag.addEventListener("click", () => gtag('event', 'phone_number_click')); 1370 let phoneNumberSplit = tag.href.split("tel:"); 1371 if (phoneNumberSplit.length > 1) { 1372 tag.ariaLabel = `Call ${phoneNumberSplit[1]}`; 1373 } 1374 } 1375 let allForms = document.querySelectorAll("form"); 1376 for (let form of allForms) { 1377 form.addEventListener("submit", (e) => { 1378 gtag("event", 'form_completion', { 1379 'form_name': e.target.querySelector("input[name='gtagevent']").value || "contact_form" 1380 }); 1381 gtag('event', 'conversion', {'send_to': 'AW-18009010413/cHXJCPD-xYwcEO3hrotD'}); 1382 }) 1383 } 1384</script>
1384 1385</template>
1385<script defer src="https://cmp.influx.mx/optin.js"></script>
1385
1385<script> 1386 function getCookie(name) { 1387 function escape(s) { 1388 return s.replace(/([.*+?\^$(){}|\[\]\/\\])/g, "\\$1"); 1389 } 1390 const match = document.cookie.match(RegExp("(?:^|;\\s*)" + escape(name) + "=([^;]*)")); 1391 return match ? match[1] : null; 1392 } 1393 1394 function setFormLocation() { 1395 const locationNav = getCookie("locationNav"); 1396 if (locationNav) { 1397 const location = JSON.parse(locationNav).locationName; 1398 document.querySelectorAll("form").forEach(form => { 1399 form.querySelectorAll("select").forEach(select => { 1400 select.querySelectorAll("option").forEach(option => { 1401 if (option.value === location) option.selected = true; 1402 }); 1403 }); 1404 }); 1405 } 1406 } 1407 1408 function setTrackingCookies() { 1409 const url = new URL(window.location); 1410 for (const key of url.searchParams.keys()) { 1411 if (!document.cookie.includes(`__form__${key}`)) { 1412 document.cookie = `__form__${key}=${url.searchParams.get(key)}; path=/`; 1413 } 1414 } 1415 } 1416 1417 function setVisitedPageCookie() { 1418 if (document.cookie.includes("currentVisitedPage")) { 1419 document.cookie = `lastVisitedPage=${getCookie("currentVisitedPage")}; path=/`; 1420 } 1421 document.cookie = `currentVisitedPage=${window.location.href}; path=/`; 1422 } 1423 1424 function scrollToHashTarget() { 1425 const hash = window.location.hash; 1426 if (!hash) return; 1427 const target = document.querySelector(hash); 1428 if (!target) return; 1429 let headerHeight = parseInt(document.body.style.getPropertyValue("--header-height")) || 135; 1430 headerHeight += 75; 1431 let lastOffset = null; 1432 let stableCount = 0; 1433 const offSetInterval = setInterval(() => { 1434 const target = document.querySelector(hash); 1435 if (!target) { 1436 clearInterval(offSetInterval); 1437 return; 1438 } 1439 const newOffset = target.getBoundingClientRect().top + window.scrollY - headerHeight; 1440 if (newOffset === lastOffset) { 1441 stableCount++; 1442 if (stableCount >= 3) { 1443 clearInterval(offSetInterval); 1444 window.scrollTo({ 1445 top: newOffset, 1446 behavior: "smooth" 1447 }); 1448 } 1449 } else { 1450 stableCount = 0; 1451 lastOffset = newOffset; 1452 window.scrollTo({ 1453 top: newOffset, 1454 behavior: "smooth" 1455 }); 1456 } 1457 }, 100); 1458 } 1459 1460 window.addEventListener("DOMContentLoaded", scrollToHashTarget); 1461 window.addEventListener("hashchange", scrollToHashTarget); 1462 1463 setTrackingCookies(); 1464 setVisitedPageCookie(); 1465 setFormLocation(); 1466 1467 1468 //if current URL matches the item in the menu, add a "current-page" class to the item 1469 document.querySelectorAll("menu a").forEach(a => { 1470 if (a.href === window.location.href) { 1471 a.classList.add("current-page"); 1472 a.parentElement.classList.add("current-page"); 1473 } 1474 }); 1475 1476</script>
1476
1476<script type="module">function a(){const o={root:null,rootMargin:"1000px 0px",threshold:0},s=new IntersectionObserver(t=>{t.forEach(r=>{if(r.isIntersecting){const e=r.target;if(!e.dataset.src)return;e.src=e.dataset.src,s.unobserve(e)}})},o),n=new IntersectionObserver(t=>{t.forEach(r=>{if(r.isIntersecting){const e=r.target;if(!e.dataset.src)return;e.src=e.dataset.src,e.load(),e.onloadeddata=()=>{e.removeAttribute("data-src"),e.play()},n.unobserve(e)}})},o);document.querySelectorAll("img[data-src]").forEach(t=>s.observe(t)),document.querySelectorAll("video[data-src]:not([data-load-on-click])").forEach(t=>n.observe(t))}window.addEventListener("DOMContentLoaded",a);</script>
1476
1476<script type="module" src="/_astro/FormHandler.astro_astro_type_script_index_0_lang.D1cAWu3H.js"></script>
1476 <div class="accessibility-widget-container"> <a role="button" class="accessibility-launcher" aria-label="Open Accessibility Menu" aria-expanded="false" tabindex="0"> <div class="accessibility-launcher-icon"> <svg width="60" height="60" viewBox="0 0 60 60" fill="none" xmlns="http://www.w3.org/2000/svg" role="img"> <title>Accessibility icon</title> <g clip-path="url(#clip0_3_2)"> <path d="M30 4.42857C44.1227 4.42857 55.5714 15.8773 55.5714 30C55.5714 44.1227 44.1227 55.5714 30 55.5714C15.8773 55.5714 4.42857 44.1227 4.42857 30C4.42857 15.8773 15.8773 4.42857 30 4.42857ZM30 6.42857C16.9819 6.42857 6.42857 16.9819 6.42857 30C6.42857 43.0181 16.9819 53.5714 30 53.5714C43.0181 53.5714 53.5714 43.0181 53.5714 30C53.5714 16.9819 43.0181 6.42857 30 6.42857ZM40.5936 24.6361C40.8208 24.6942 41.0323 24.8028 41.2129 24.9537C41.3927 25.1041 41.5373 25.2927 41.6362 25.506C41.7349 25.7185 41.7857 25.9505 41.7857 26.1965C41.778 26.578 41.6395 26.9452 41.3936 27.2353C41.1464 27.5268 40.8059 27.7221 40.4376 27.7857C38.1922 28.2018 35.9244 28.4828 33.6481 28.6271C33.5049 28.6367 33.3651 28.6759 33.2369 28.7424C33.1082 28.8091 32.994 28.9019 32.9012 29.0154C32.8079 29.1294 32.7383 29.2618 32.6967 29.4044C32.6759 29.4759 32.6623 29.5493 32.6557 29.6152L32.6511 29.7072L32.6599 29.8496L32.8523 31.5976C33.0926 33.7484 33.5345 35.8702 34.1701 37.9296L34.4174 38.6989L34.6846 39.4673L35.9271 42.8464C35.9992 43.0441 36.0318 43.2542 36.023 43.4646C36.0141 43.6751 35.964 43.8817 35.8755 44.0727C35.7867 44.2639 35.6611 44.4355 35.5059 44.5773C35.3502 44.7196 35.1677 44.829 34.99 44.8912C34.8134 44.9616 34.6253 44.9985 34.4204 45C34.1148 44.9943 33.8175 44.8987 33.5651 44.7253C33.4239 44.6283 33.2998 44.5091 33.189 44.3581L33.0827 44.196L33.0074 44.0456L32.6902 43.3563C31.8321 41.4806 31.0485 39.6428 30.3336 37.8221L30.0025 36.9627L29.5751 38.0696C29.3404 38.6637 29.0998 39.2561 28.8537 39.8465L28.4802 40.7305L27.9044 42.0505L27.3109 43.3601L27.0273 43.9426C26.881 44.3389 26.585 44.6608 26.2035 44.837C25.8203 45.0139 25.3832 45.0288 24.9892 44.8784C24.5966 44.7286 24.2796 44.4272 24.1073 44.0414C23.9886 43.7757 23.9447 43.4837 23.9834 43.1769L24.0166 42.9911L24.0668 42.8262L25.3079 39.4507C26.0439 37.4198 26.5852 35.3222 26.9239 33.1917L27.0415 32.3912L27.1413 31.5772L27.3403 29.8382C27.3582 29.6889 27.346 29.5376 27.3045 29.3935C27.2631 29.2497 27.1935 29.1162 27.1 29.0012C27.007 28.8867 26.8923 28.7929 26.7631 28.7253C26.6343 28.658 26.4937 28.6182 26.3535 28.6083C24.0561 28.4627 21.7692 28.1774 19.507 27.7543C19.3016 27.7166 19.1058 27.
14766379 18.9308 27.5231C18.7564 27.4085 18.6063 27.2602 18.489 27.0868C18.3721 26.9139 18.2902 26.7195 18.2479 26.5149C18.2055 26.3104 18.2035 26.0993 18.2404 25.902C18.2758 25.6952 18.3515 25.4975 18.4633 25.3202C18.5754 25.1425 18.7216 24.9892 18.8933 24.869C19.0655 24.7486 19.26 24.6643 19.4652 24.6211C19.6707 24.5779 19.8826 24.5768 20.0823 24.6167C26.6344 25.8478 33.3529 25.8478 39.898 24.618C40.1283 24.5717 40.366 24.5779 40.5936 24.6361ZM32.8056 16.183C34.352 17.7552 34.352 20.3006 32.8056 21.8729C31.2543 23.4501 28.7353 23.4501 27.184 21.8729C25.6376 20.3007 25.6376 17.7552 27.184 16.183C28.7353 14.6057 31.2543 14.6057 32.8056 16.183Z" fill="white"></path> </g> <defs> <clipPath id="clip0_3_2"> <rect width="60" height="60" fill="white"></rect> </clipPath> </defs> </svg> </div> </a> <div class="accessibility-panel hidden" role="dialog" aria-modal="true" aria-label="Accessibility Settings" tabindex="-1"> <div class="accessibility-panel-inner"> <div class="accessibility-header"> <p class="accessibility-header-title">Accessibility Menu <span class="accessibility-menu-small-text">(CTRL + U)</span></p> <div class="accessibility-header-controls"> <a role="button" class="accessibility-header-close" aria-label="Close Menu" tabindex="0"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" width="16" height="16"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-width="1.5" d="m2.3 2.3 9.4 9.4m-9.4 0 9.4-9.4"></path></svg> </a> </div> </div> <div class="accessibility-body"> <div class="accessibility-feature-grid"> <a role="button" class="accessibility-feature-btn" aria-pressed="false" aria-label="Contrast Mode" data-feature-id="contrast" data-current-step="0" data-steps="3" tabindex="0"> <span class="accessibility-feature-icon"> <span class="icon-char">â</span> </span> <span class="accessibility-feature-name">Contrast Mode</span> <span class="accessibility-feature-steps"> <span class="step-dot" data-step-index="1"></span><span class="step-dot" data-step-index="2"></span><span class="step-dot" data-step-index="3"></span> </span> </a><a role="button" class="accessibility-feature-btn" aria-pressed="false" aria-label="Highlight Links" data-feature-id="highlight" data-current-step="0" data-steps="1" tabindex="0"> <span class="accessibility-feature-icon"> <span class="icon-char"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07L13.5 6.5M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07L10.5 17.5"></path> </svg> </span> </span> <span class="accessibility-feature-name">Highlight Links</span> <span class="accessibility-feature-steps"> <span class="step-dot" data-step-index="1"></span> </span> </a><a role="button" class="accessibility-feature-btn" aria-pressed="false" aria-label="Larger Text" data-feature-id="text-size" data-current-step="0" data-steps="2" tabindex="0"> <span class="accessibility-feature-icon"> <span class="icon-char">T+</span> </span> <span class="accessibility-feature-name">Larger Text</span> <span class="accessibility-feature-steps"> <span class="step-dot" data-step-index="1"></span><span class="step-dot" data-step-index="2"></span> </span> </a><a role="button" class="accessibility-feature-btn" aria-pressed="false" aria-label="Text Spacing" data-feature-id="spacing" data-current-step="0" data-steps="3" tabindex="0"> <span class="accessibility-feature-icon"> <span class="icon-char">â</span> </span> <span class="accessibility-feature-name">Text Spacing</span> <span class="accessibility-feature-steps"> <span class="step-dot" data-step-index="1"></span><span class="step-dot" data-step-index="2"></span><span class="step-dot" data-step-index="3"></span> </span> </a><a role="button" class="accessibility-feature-btn" aria-pressed="false" aria-label="Dyslexia Friendly" data-feature-id="dyslexia" data-current-step="0" data-steps="1" tabindex="0"> <span class="accessibility-feature-icon">
1476 <span class="icon-char">Aa</span> </span> <span class="accessibility-feature-name">Dyslexia Friendly</span> <span class="accessibility-feature-steps"> <span class="step-dot" data-step-index="1"></span> </span> </a><a role="button" class="accessibility-feature-btn" aria-pressed="false" aria-label="Hide Images" data-feature-id="hide-images" data-current-step="0" data-steps="1" tabindex="0"> <span class="accessibility-feature-icon"> <span class="icon-char"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <line x1="1" y1="1" x2="23" y2="23"></line> <path d="M21 15V5a2 2 0 0 0-2-2H9"></path> <path d="m21 15-5-5L5 21"></path> <path d="M3.6 3.6c-.4.4-.6.9-.6 1.4v14a2 2 0 0 0 2 2h14c.5 0 1-.2 1.4-.6"></path> </svg> </span> </span> <span class="accessibility-feature-name">Hide Images</span> <span class="accessibility-feature-steps"> <span class="step-dot" data-step-index="1"></span> </span> </a><a role="button" class="accessibility-feature-btn" aria-pressed="false" aria-label="Line Height" data-feature-id="line-height" data-current-step="0" data-steps="3" tabindex="0"> <span class="accessibility-feature-icon"> <span class="icon-char"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M3 3h18"></path> <path d="M3 21h18"></path> <path d="m16 16-4 4-4-4"></path> <path d="m12 20V4"></path> <path d="m16 8-4-4-4 4"></path> </svg> </span> </span> <span class="accessibility-feature-name">Line Height</span> <span class="accessibility-feature-steps"> <span class="step-dot" data-step-index="1"></span><span class="step-dot" data-step-index="2"></span><span class="step-dot" data-step-index="3"></span> </span> </a><a role="button" class="accessibility-feature-btn" aria-pressed="false" aria-label="Text Align" data-feature-id="text-align" data-current-step="0" data-steps="3" tabindex="0"> <span class="accessibility-feature-icon"> <span class="icon-char"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <line x1="17" y1="10" x2="3" y2="10"></line> <line x1="21" y1="6" x2="3" y2="6"></line> <line x1="21" y1="14" x2="3" y2="14"></line> <line x1="17" y1="18" x2="3" y2="18"></line> </svg> </span> </span> <span class="accessibility-feature-name">Text Align</span> <span class="accessibility-feature-steps"> <span class="step-dot" data-step-index="1"></span><span class="step-dot" data-step-index="2"></span><span class="step-dot" data-step-index="3"></span> </span> </a><a role="button" class="accessibility-feature-btn" aria-pressed="false" aria-label="Saturation" data-feature-id="saturation" data-current-step="0" data-steps="3" tabindex="0"> <span class="accessibility-feature-icon"> <span class="icon-char"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z"></path> </svg> </span> </span> <span class="accessibility-feature-name">Saturation</span> <span class="accessibility-feature-steps"> <span class="step-dot" data-step-index="1"></span><span class="step-dot" data-step-index="2"></span><span class="step-dot" data-step-index="3"></span> </span> </a><a class="accessibility-feature-btn" href="/accessibility/" aria-pressed="false" aria-label="Accessibility Statement" data-feature-id="statement-page" data-current-step="0" data-steps="0" tabindex="0"> <span class="accessibility-feature-icon"> <span class="icon-char"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path> <polyline points="14 2 14 8 20 8"></polyline> <line x1="16" y1="13" x2="8" y2="13"></line> <line x1="16" y1="17" x2="8" y2="17"></line> <polyline points="10 9 9 9 8 9"></polyline> </svg> </span> </span> <span class="accessibility-feature-name">Accessibility Statement</span> <span class="accessibility-feature-steps"> </span> </a> </div> </div> <div class="accessibility-footer"> <a role="button" class="accessibility-btn-reset" tabindex="0"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 19 16" width="16" style="margin-right:8px"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-width="1.5"><path d="M16.2 8c0 .9-.2 1.9-.5 2.7-.3.8-.8 1.6-1.4 2.2-.6.6-1.3 1.1-2.1 1.5-.8.4-1.7.5-2.6.5-2.6 0-5-1.5-6.2-3.7M2.7 8c0-1 .2-1.9.5-2.7.3-.8.8-1.6 1.4-2.2.6-.6 1.3-1.1 2.1-1.5C7.6 1.2 8.5 1 9.4 1c.9 0 1.8.2 2.6.5.8.4 1.5.9 2.1 1.5"></path><path stroke-linejoin="round" d="m4.9 7-2.5 1.5L1 5.9m13 2.9 2.4-1.6L18 9.6"></path></g></svg> 1477Reset Settings 1478</a> <button class="accessibility-btn-oversize accessibility-btn-square" aria-label="Toggle Oversized Widget" aria-pressed="false" tabindex="0"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewB
1478ox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect> <line x1="16" y1="8" x2="8" y2="8"></line> <line x1="8" y1="16" x2="16" y2="16"></line> </svg> </button> <button class="accessibility-btn-widget-theme" aria-label="Toggle Widget Theme" tabindex="0"> <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="5"></circle> <line x1="12" y1="1" x2="12" y2="3"></line> <line x1="12" y1="21" x2="12" y2="23"></line> <line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line> <line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line> <line x1="1" y1="12" x2="3" y2="12"></line> <line x1="21" y1="12" x2="23" y2="12"></line> <line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line> <line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line> </svg> </button> </div> </div> </div> </div>
1478<script type="module" src="/_astro/Accessibility.astro_astro_type_script_index_0_lang.D0lp6Osc.js"></script>
1478 </body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.