img, iframe {max-width: 100%; height: auto} html,body{-webkit-text-size-adjust:100%;text-size-adjust:100%} html { --12px: .75rem; --14px: 0.875rem; --15px: 0.9375rem; --16px: 1rem; --17px: 1.0625rem; --18px: 1.125rem; --19px: 1.1875rem; --20px: 1.25rem; --24px: 1.5rem; --32px: 2rem; --50px: 3.125rem; scroll-padding-top: 200px; scroll-padding-bottom: 100px } *:focus-visible, *:focus, input[type=submit]:focus-visible { outline-style: solid; outline-width: 2px; outline-color: #000; outline-offset: 4px; border-radius: 3px; transition: all .3s linear .01s; } :is(nav a, h1):focus-visible, .hero .btn, .bg-primary a { outline-color: #fff; box-shadow: unset } .jump { text-decoration-line: underline; text-decoration-color: var(--accent); text-underline-offset: 3px; position: absolute; background: #fff; left: 200px; top: 0; padding: 10px; color: var(--primary); border-width: 2px; border-color: var(--secondary); border-style: none solid solid; transform: translateY(-100%); font-weight: bold; font-size: var(--16px); outline-offset: 0 !important } .jump:focus { transform: translateY(0%); } .sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); margin: -1px; padding: 0; border: 0; } .sr-kern { letter-spacing: -2.5px } :focus.sr-only { width: auto; height: auto; margin: 0; overflow: auto; clip: auto; } :focus.sr-only.btn { padding: 10px 40px } .jumpmapbefore { position: relative; bottom: 0; right: 0 } .jumpmapafter { position: relative; right: 0 } a[target="_blank"] { position: relative } a[target="_blank"] i { padding: 4px; border: 1px solid black; color: #000; background-color: #fff; text-decoration: none; position: absolute; left: 0; top: -30px; z-index: 999; width: 140px; display: none; font-size: var(--12px); font-style: normal; font-weight: 400; font-family: sans-serif; text-align: center !important; text-transform: none } a[target="_blank"]:is(:hover, :focus) i { display: block } header a[onclick="target='_blank'"] i, header a[target="_blank"] i { left: 0; } .ccpaNotice a:focus-visible { outline-color: #000 } .ccpaNotice a i { bottom: unset !important; top: -30px; } .a8bmark[target="_blank"] i { right: 0; left: unset } html { font-size: 1rem; scroll-padding-top: 150px; scroll-padding-bottom: 100px } :root { --main-bg: #fff; --item-bg: #fafafa; --light: #b5c3b2; --light-comp: #000; --main-comp: #333; --dark: #333; --dark-comp: #fff; --primary: #42534d; --primary-comp: #fff; --secondary: #62794e; --secondary-comp: #fff; --link: #28824e } * { box-sizing: border-box; scroll-behavior: smooth } body, button, form * { font-family: 'Nunito', Arial, Helvetica, sans-serif; font-size: var(--18px); line-height: 1.5 } body { text-align: center; min-width: 320px } body, footer a:hover, button:hover { color: var(--main-comp); } body, header ul, .location iframe { padding: 0; margin: 0; } h1, h2, h3, h4, h5, h6, p, th, td, dd, dt, li, blockquote { text-align: left; } h1, h2, h3, h4, h5, h6, strong, bold { font-weight: 600 } h1, h2 { line-height: 1.2 } img { object-fit: cover } img, iframe, video { max-width: 100%; height: auto; display: block; margin: 0 auto } iframe, video { aspect-ratio: auto 16 / 9; width: 100%; margin: 1em auto; } a img, iframe { border: none; } a, nav li, main a, main a:is(:hover,:focus), .location a:hover, .homeblog span { color: var(--link); transition: ease-in-out .3s; } a { text-underline-offset: 4px; text-decoration-thickness: 1px } a:hover { text-decoration: underline; } hr { border-width: 1px; border-color: #eee; border-style: none none solid; margin: 40px 0; } .imgLeft, .imgRight { max-width: 45%; } .imgLeft { float: left; margin: 10px 4% 2% 0; } .imgRight { float: right; margin: 10px 0 2% 4%; } .clear { clear: both; } .nowrap, a[href^=tel], .subfoot .address span { white-space: nowrap; } sup { line-height: 0; } .hide { display: none !important; } main:has(.thanks-page) + footer .education, main:has(.request-page) + footer .education { display: none; } .center, .hero h1, .hero p, .row1 h2, .row1 p, .row2 h2, .row2 p, .row3 h2, .row3 p, .row4 h2, .row4 p, .services .grid h3, .services .grid p { text-align: center; } .wrap { display: block; max-width: 1100px; margin: 0 auto; position: relative; } .bg-dark, .bg-primary, footer p, footer a, footer button { color: var(--dark-comp); } .bg-dark { background-color: var(--dark); } .bg-primary { background-color: var(--primary); } .bg-secondary { background-color: var(--secondary); color: var(--light-comp) } .bg-light { background-color: var(--light); color: var(--dark); } .mid { align-items: center; align-self: center; } .grid { display: grid; grid-gap: 10px clamp(10px, 3vw, 40px); } .grid.half { grid-template-columns: repeat(2, 1fr); } .grid.third { grid-template-columns: repeat(3, 1fr); } .grid.fourth { grid-template-columns: repeat(4, 1fr); } .grid.fullimg > img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 30% } .col2 { column-count: 2 } .col2 > li { margin: 0 25px 5px 0 } button { border: none; background: none; margin: 0; padding: 0; transition: ease-in-out .3s; } button:is(:hover, :focus) { cursor: pointer; outline-offset: 4px; } .bgimg { position: relative } .bgimg > img:first-of-type, .hero div[role=complementary] img { position: absolute; width: 100%; height: 100%; inset: 0; object-fit: cover; z-index: 0 } .bgimg .wrap { z-index: 2 } :is(a, button):is(:hover, :focus) { text-decoration-line: underline; text-decoration-color: var(--secondary); } header, .hero, .education { position: relative; } header .grid { grid-template-columns: 200px 1fr; grid-gap: 0 } header .grid div { font-size: 16px; font-weight: 500; text-align: right } header .grid li a { width: 260px; margin: 5px; display: inline-block; min-width: 150px; text-align: center; text-transform: uppercase; background-color: var(--primary); color: var(--primary-comp) !important; padding: 10px; border: 1px solid var(--primary); border-radius: 5px; transition: ease-in-out .3s; text-decoration: none } header .grid li a:is(:hover,:focus) { background-color: var(--secondary); color: var(--light-comp); text-decoration: none } header li, footer li { display: inline-block } nav li { position: relative } header a { margin: 5px; padding: 5px } header form#language { width: 260px; margin: 0 5px 5px auto } header select, header option { font-size: 14px; } #logo { display: inline-block; margin: 10px auto } nav :is(a,button) { display: block; font-size: 18px; color: var(--secondary-comp); margin: 5px; padding: 5px 10px; border-bottom: 2px solid transparent; position: relative; text-decoration: none } nav a, nav a:is(:hover, :focus) { text-decoration: none } nav :is(a,button):is(:hover, :focus) { color: var(--primary-comp); border-color: var(--primary-comp); outline: none } nav ul ul { display: none; min-width: 220px; max-width: min(400px, calc(100vw - 20px)); background-color: var(--secondary); box-shadow: 0 0 10px rgba(0, 0, 0, .1); position: absolute; left: 0; z-index: 9 } nav ul ul :is(li,a), nav li:hover > ul { display: block } nav li:hover > ul { display: block !important; } nav ul ul a { font-size: 16px } nav button { background: none; text-decoration: none; font-size: 1rem; padding: 5px 25px 5px 10px; margin: 5px; z-index: 999; color: var(--secondary-comp, #fff); text-decoration-color: var(--secondary-comp, #fff); } nav button:is(:hover,:focus) { text-decoration: none } nav button, nav > ul > li > a { font-size: var(--18px) } nav button:after { content: "\2B9F"; margin-left: 0.5em; width: 20px; height: 20px; display: inline-block; position: absolute; font-weight: bold; font-size: 14px; top: 10px } nav button[aria-expanded=true]:after, nav > ul > li:hover button:after,nav li:hover button:after { transform: rotate(-180deg) } .hero { position: relative; background-color: var(--secondary); color: #fff } .hero { width: 100%; height: 400px } .hero > .wrap { top: 50%; transform: translateY(-50%); } .hero :is(h1,p) { max-width: 750px; margin: 0 auto; padding: 0 10px; text-shadow: 0 0 10px rgba(0, 0, 0, .5),0 0px 2px #000; text-wrap: balance } .hero h1, .hero .bloghero { font-size: 48px; font-weight: 700 } .hero p { font-size: 24px; margin: 40px auto; } .hero .bloghero { margin: 0 auto } .home > div .wrap { padding: 40px 10px 50px } .home h2, .home h3, .welcome h1, .homeblog p, .education h2, .education p, footer li, footer p { text-align: center } .home h2, .education h2 { font-size: 40px; text-transform: uppercase } .home img { object-fit: cover } .home > div:not(.homeblog) a { text-decoration: none; color: var(--main-comp) } .home .bg-light a:is(:hover,:focus), .hero h1, .hero p { color: var(--dark-comp) } .home .welcome .wrap { padding: 5px 15px } .welcome h1 { font-size: 48px; color: var(--dark-comp); text-shadow: 0 2px 6px rgba(0,0,0,.35); text-wrap: balance } .comments { background-color: #edd7c7 } .comments blockquote { font-size: 24px; text-align: center; padding: 0; margin: 0 } .comments blockquote strong { display: block; text-transform: uppercase; margin-top: 10px } .intro .grid { grid-template-columns: 400px 1fr } .intro img { object-fit: cover; height: 350px; width: auto; } .conditions .grid { grid-gap: 10px; margin-bottom: 40px; } .services .grid { grid-gap: 10px; margin-bottom: 40px; } .services .grid a { text-decoration: none; color: var(--main-comp); } .services .grid a:is(:hover,:focus) { color: var(--secondary); } .services h3 { text-align: center; } .services .grid h3 { font-size: 1rem; text-wrap: balance } .conditions .grid a { text-decoration: none; color: var(--main-comp); } .conditions .grid a:is(:hover,:focus) { color: var(--secondary); } .conditions img, .providers img { border-radius: 50%; box-shadow: 0 0 10px rgba(0, 0, 0, .1) } .conditions img { height: 250px; width: 250px } .conditions h3 { margin: 10px; text-align: center; } .services img, .homeblog img { width: 100%; height: 200px } .providers span { display: block } .providers img { width: 100%; max-width: 320px; max-height: 320px } .location .grid { grid-template-columns: 300px 1fr } .location .grid > div { position: relative } .location ul { margin-top: 50px } .location iframe { height: 350px } .education, .education img { height: 600px } .education p { text-wrap: balance } .education img { object-fit: cover; object-position: top; opacity: 50%; width: 100%; position: absolute; top: 0; left: 0 } fieldset { border: none; margin: 0; padding: 0 } legend { display: block; padding: 20px 0 10px; color: var(--primary); font-weight: bold; font-size: var(--20px) } form { text-align: left; margin: 0 0 40px; } form .grid { grid-gap: 0 10px; } form label { margin-bottom: 15px } form :is(label, input, textarea, select) { display: block; width: 100%; } form :is(input, textarea, select) { border: 1px solid #ddd; padding: 10px; background-color: var(--main-bg, #fff); } form input[type=file] { margin-left: 10px; border-radius: 0; } form textarea { height: 100px; } form input[type=submit], .btn { display: inline-block; min-width: 150px; text-align: center; text-transform: uppercase; background-color: var(--primary); color: var(--primary-comp) !important; padding: 10px 40px; margin: 10px 0; border: 1px solid var(--primary); border-radius: 5px; transition: ease-in-out .3s; text-decoration: none } form input[type=submit] { width: auto; min-width: 250px; } :is(form input[type=submit], .btn):is(:hover, :focus) { cursor: pointer; background-color: var(--secondary); color: var(--light-comp); text-decoration: none } .radio-group { border: none; margin: 20px 0; padding: 0; } .radio-options { display: flex; gap: 15px; flex-wrap: wrap; } .radio-option { display: flex; align-items: center; width: auto; margin-bottom: 0; cursor: pointer; } .radio-option input[type="radio"] { width: auto; margin-right: 10px; margin-bottom: 0; cursor: pointer; accent-color: var(--primary); } .radio-option span { font-size: var(--16px); font-weight: 400; color: var(--primary); user-select: none; } .radio-option input[type="radio"]:hover { transform: scale(1.1); } .radio-option input[type="radio"]:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; } .review-ribbon { text-align: center; padding: 20px 10px } .review-ribbon .btn { margin: 8px 10px; min-width: 200px; background-color: var(--secondary); color: #fff !important } .review-ribbon .btn:is(:hover, :focus) { background-color: #fff; color: var(--primary) !important } footer .wrap { padding: 20px 10px 50px } footer .subfoot .grid.mid { grid-template-columns: 1fr 150px } footer .bg-light a { text-decoration: none } footer .bg-light a:is(:hover, :focus) { text-decoration: underline var(--secondary); } footer button, .wcag a { text-decoration: underline; text-underline-offset: 4px } :is(footer button, .wcag a):is(:hover, :focus) { text-decoration-color: var(--secondary) } footer .grid { margin-bottom: 10px } footer li { margin: 5px 10px } footer a { display: block; } footer p { margin: 5px 0 } footer .small { text-wrap: balance } .subfoot ul { text-wrap: balance } .subfoot li { margin: 0 } .subfoot ul a { padding: 5px; margin: 5px 10px; } .back, .copy, .blog .grid p { text-align: left } .address { margin: 40px 0; } .copy, .small, .blog .grid p { font-size: 16px } .small { margin-top: 50px } .ccpaNotice { text-align: center !important; } .wcag { text-align: right } .wcag a { display: inline-block } img[src*=a8bmark] { filter: invert(1) } main { padding: 40px 10px 50px; } main h1, main h2, .row2 h3, .about h3, .services h3 { font-size: 30px; } main h3 { font-size: 20px; } main h4 { font-size: 18px; } main ul, main ol { padding-left: 25px; } main li { margin: 5px 0; } .nolist, header ul, footer ul, .location ul, .contact ul { list-style: none; padding-left: 0; } .contact summary { font-size: 20px; font-weight: 600; text-align: left; background-color: var(--primary); color: var(--primary-comp); padding: 15px clamp(10px, 3vw, 40px); margin-top: 10px } .contact summary:focus, .contact summary:hover { background-color: var(--secondary) } .contact details { background-color: #f5f5f5 } .contact details p { padding: 10px 20px; margin: 0 } .contact details p:first-of-type { padding-top: 20px } .contact details p:last-of-type { padding-bottom: 40px } .disclaimer { font-size: 0.85em; color: #666; border-top: 1px solid #e0e0e0; margin-top: 40px; padding-top: 15px; font-style: italic; } details.collapsible { margin: 20px 0; padding: 0; border: 1px solid #e0e0e0; border-radius: 5px; background-color: var(--item-bg); } details.collapsible summary { cursor: pointer; font-weight: 600; font-size: 1.1em; background-color: var(--primary); color: var(--primary-comp); padding: 15px; margin: 0; text-align: left; border-radius: 5px 5px 0 0; } details.collapsible summary:is(:hover,:focus) { background-color: var(--secondary); outline: none } details.collapsible p { margin-top: 0; margin-bottom: 0; padding: 15px; } details a { font-weight: bold } .team-intro { max-width: 900px; margin: 0 auto 40px; } .grid.half .team-member { border: 1px solid #ddd; border-radius: 8px; padding: 25px; background-color: var(--item-bg); transition: all 0.3s ease; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05); } .grid.half .team-member:hover { box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); border-color: var(--secondary); } .team-member > div { display: flex; flex-direction: column; gap: 20px; } .team-member img { width: 250px; height: 250px; object-fit: cover; border-radius: 6px; margin: 0 auto 10px; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08); } .member-info h2 { font-size: 22px; margin: 0 0 10px 0; color: var(--primary); } .member-info p { margin: 10px 0; font-size: 16px; } .member-info p strong { color: var(--secondary); } .homeblog > div > p { text-wrap: balance } .homeblog .posts { display: grid; grid-template-columns: 1fr 1fr; grid-gap: 20px } .homeblog img { object-position: 50% 30%; margin: 0 } .homeblog .posttags, .homeblog .postcats { display: none; } .homeblog .post { display: grid; grid-template-areas: "img" "h" "p" } .homeblog .post h3 { grid-area: h; margin: 5px 0; text-wrap: balance } .homeblog .post .postThumbnail { grid-area: img } .homeblog .post p:nth-of-type(2) { grid-area: p; display: block; text-align: left } .homeblog .post p { display: none } .homeblogblog span { font-weight: 600 } .homeblog a:hover, .education p { color: var(--main-comp) } .video-grid { display: flex; gap: 20px; margin-bottom: 20px; } .video-grid > div { flex: 1; } .video-single { max-width: 640px; margin: 0 auto; } .testimonials .grid { grid-gap: 20px; margin: 30px 0 } .grid:has(.testimonial-card) { grid-gap: 30px } .testimonial-card { background-color: #f9f9f9; padding: 25px; border-radius: 8px; box-shadow: 0 2px 8px rgba(0, 0, 0, .1); display: flex; flex-direction: column; justify-content: space-between; min-height: 200px } .testimonial-card p { margin: 0 0 15px 0; font-size: 16px; color: var(--main-comp) } .testimonial-card strong { color: var(--primary); font-weight: 600; text-align: left } details.more-testimonials { margin: 40px 0; } details.more-testimonials summary { cursor: pointer; display: inline-block; background-color: var(--primary); color: var(--primary-comp); padding: 12px 30px; border-radius: 5px; font-weight: 600; text-transform: uppercase; transition: ease-in-out .3s; user-select: none; } details.more-testimonials summary:hover { background-color: var(--secondary); color: var(--light-comp); } details.more-testimonials[open] summary { margin-bottom: 20px; } @media(prefers-reduced-motion:reduce) { * { transition: all 0s !important; scroll-behavior: unset; animation: none !important } } @media(forced-colors:active) { img[src*=a8bmark] { filter: unset } details.collapsible summary { border-radius: 5px } nav a:is(:hover, :focus), details.collapsible summary:is(:focus) { outline: 2px solid #000 } } @media(max-width:62.5rem) { .disclosure-nav button { display: none } nav button:after { border: none } .disclosure-nav ul { display: block !important; position: relative; width: unset; background-color: unset; margin: 0; box-shadow: none; border: none; padding: 0 } .disclosure-nav ul li:nth-of-type(n+2), nav ul ul a span { display: none !important } nav ul ul li a { transition: ease-in-out .3s; font-size: var(--18px); text-decoration: none } nav ul ul li a:is(:hover, :focus) { text-decoration-line: none; } .grid.fourth { grid-template-columns: 1fr 1fr } nav ul ul { display: none !important; min-width: unset } nav li svg { display: none } } @media(max-width:47.999rem) { .grid.third, header .grid { grid-template-columns: 1fr 1fr } .grid.third > *:last-child:nth-of-type(odd) { grid-column: 1 / -1 } .contact .grid, .intro .grid { grid-template-columns: 1fr } .contact .grid > div { display: inline-block; margin: 0 auto } .jump { left: unset; right: 50%; transform: translate(50%, -100%) } .jump:focus { transform: translate(50%, 0) } #logo { margin: 5px auto } header :is(form#language, ul) { margin: 5px auto 0; text-align: center } .video-single { max-width: 100% } .video-grid { flex-direction: column; } } @media(max-width:43.75rem) { header .grids { grid-template-columns: 1fr } nav ul { text-align: center } nav a { padding: 5px 10px } .hero { height: auto !important } .hero > .wrap { padding: 80px 0; top: unset; transform: none } .blogintro h1 { text-align: center; text-wrap: balance } main.posts { padding-top: 0 } } @media(max-width:37.5rem) { .grid.half, .grid.third, .grid.fourth, .row2 .grid, footer .subfoot .grid.mid, .homeblog .posts { grid-template-columns: 1fr } .col2 { column-count: 1 } .col2 > li { margin: 0 0 5px } .subfoot p, .row2 h2, .row2 h3, .homeblog .post p:nth-of-type(2) { text-align: center } .imgRight { float: none; margin: 0 auto; max-width: 100%; } .row1 .grid > div:nth-of-type(2) { border: none } main { margin-bottom: 0; padding-bottom: 50px } .about .grid:nth-of-type(even) > img:first-of-type { order: unset; } .about .grid p:last-of-type { margin: 1em 0; } .about .grid :is(h3, p) { padding: 0 } } @media(max-width:31.25rem) { header .grid { grid-template-columns: 1fr } nav ul { display: grid; grid-template-columns: 1fr 1fr } nav li:last-of-type:nth-of-type(odd) { grid-column: 1 / -1 } nav a { text-align: center } .welcome h1 { font-size: min(10.5vw, 48px) } } @media(max-width:25rem) { form input[type=submit] { max-width: unset; display: block; width: 100% } nav a { font-size: 5vw } .subfoot ul { display: grid; grid-template-columns: 1fr 1fr; align-items: center } .subfoot .address span { display: block } .subfoot ul a { margin: 5px } .subfoot ul li:last-of-type:nth-of-type(odd) { grid-column: 1 / -1 } } 