:root{
  --sky:#e6f4fb; --sky-d:#cde8f5; --white:#fff;
  --teal:#0a6f89; --teal-d:#064c60; --green:#3d9a5b; --green-l:#dff2e4;
  --sun:#ffc933; --sun-d:#e8a900; --sun-l:#fff3c4;
  --night:#14304a; --ink:#1d3340; --muted:#4a606c; --rule:rgba(10,111,137,.2);
  --display:'Fredoka','Trebuchet MS',sans-serif; --body:'Nunito',system-ui,sans-serif;
}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{font-family:var(--body);color:var(--ink);background:var(--white);font-size:1.0625rem;line-height:1.7;overflow-x:hidden}
h1,h2,h3,h4{font-family:var(--display);font-weight:600;line-height:1.1;color:var(--teal-d)}
a{color:var(--teal)}
a:focus-visible,.btn:focus-visible,button:focus-visible{outline:3px solid var(--sun-d);outline-offset:3px}
img{max-width:100%;height:auto}

/* utility bar */
.util{background:var(--teal-d);color:#fff;font-size:.92rem;padding:.4rem 0}
.util a{color:#fff;text-decoration:none;font-weight:700}
.util a:hover{text-decoration:underline}
.util .sep{opacity:.4;margin:0 .6rem}

/* nav */
.mainnav{background:#fff;border-bottom:3px solid var(--sun);box-shadow:0 6px 18px rgba(10,111,137,.08);z-index:1030}
.mainnav .navbar-brand{display:flex;align-items:center;gap:.7rem;font-family:var(--display);font-weight:600;font-size:1.35rem;line-height:1.05;color:var(--teal-d)}
.mainnav .navbar-brand img{width:64px;height:auto;display:block}
.mainnav .navbar-brand small{display:block;font-family:var(--body);font-weight:700;font-size:.78rem;color:var(--green);margin-top:.15rem}
.mainnav .nav-link{font-weight:700;color:var(--ink);padding:.5rem .8rem;border-radius:999px}
.mainnav .nav-link:hover{background:var(--sky);color:var(--teal-d)}
.btn{font-family:var(--display);font-weight:600;font-size:1.05rem;border-radius:999px;padding:.65rem 1.5rem;border-width:3px}
.btn-sun{background:var(--sun);border-color:var(--sun);color:var(--night)}
.btn-sun:hover{background:var(--sun-d);border-color:var(--sun-d);color:var(--night)}
.btn-teal{background:var(--teal);border-color:var(--teal);color:#fff}
.btn-teal:hover{background:var(--teal-d);border-color:var(--teal-d);color:#fff}
.btn-line{border-color:var(--teal);color:var(--teal-d);background:transparent}
.btn-line:hover{background:var(--teal);color:#fff}

/* hero: typographic with the practice's own sky */
.hero{background:linear-gradient(180deg,var(--sky) 0%,#f5fbfe 100%);position:relative;padding:4.5rem 0 7rem;overflow:hidden}
.hero h1{font-size:clamp(2.5rem,6vw,4.6rem);font-weight:700;letter-spacing:-.01em}
.hero .lede{font-size:1.25rem;max-width:34rem;color:var(--ink)}
.hero .same-day{display:inline-flex;align-items:center;gap:.6rem;background:var(--sun-l);border:2px dashed var(--sun-d);border-radius:999px;padding:.4rem 1.1rem;font-weight:800;color:var(--night);margin-bottom:1.2rem}
.sky{position:relative;min-height:340px}
.sky img{position:absolute;height:auto}
.sky .p1{width:min(52%,230px);top:4%;right:6%;animation:bob 7s ease-in-out infinite}
.sky .p2{width:min(36%,160px);top:50%;left:6%;animation:bob 9s ease-in-out -3s infinite}
.sky .bird{width:min(30%,130px);bottom:2%;right:18%}
@keyframes bob{50%{transform:translateY(-12px)}}
@media (prefers-reduced-motion:reduce){.sky img{animation:none!important}html{scroll-behavior:auto}}

/* scalloped cloud divider */
.scallop{position:absolute;left:0;right:0;bottom:-1px;height:44px;
  background:radial-gradient(circle at 24px 44px,#fff 23px,transparent 24px) 0 0/48px 44px repeat-x}
.scallop.on-sky{background:radial-gradient(circle at 24px 44px,var(--sky) 23px,transparent 24px) 0 0/48px 44px repeat-x}
.scallop.on-night{background:radial-gradient(circle at 24px 44px,var(--night) 23px,transparent 24px) 0 0/48px 44px repeat-x}
.scallop.top{top:-1px;bottom:auto;transform:scaleY(-1)}

section{position:relative;padding:5rem 0}
.sec-sky{background:var(--sky)}
.h-sec{font-size:clamp(2rem,4vw,3rem);margin-bottom:1rem}
.kicker{font-family:var(--display);font-weight:500;font-size:1.15rem;color:var(--green)}

/* about */
.about .tree{max-height:360px;width:auto}
.doc-chips{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1rem}
.doc-chips span{background:var(--green-l);color:var(--teal-d);font-weight:800;border-radius:999px;padding:.35rem 1rem}

/* services index list */
.svc-list{list-style:none;margin:0;padding:0;border-top:3px solid var(--teal)}
.svc-list li{border-bottom:2px solid var(--rule);padding:1.6rem 0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:1rem 2rem}
.svc-list h3{font-size:clamp(1.5rem,3vw,2.1rem);margin:0}
.svc-list p{margin:0}
@media(max-width:767px){.svc-list li{grid-template-columns:1fr}}
.meet{background:var(--sun-l);border:3px solid var(--sun);border-radius:28px;padding:1.6rem 1.8rem;position:relative}
.meet img{position:absolute;right:1rem;bottom:100%;width:90px;margin-bottom:-6px}

/* hours: day & night */
.hours{background:var(--night);color:#eaf4fa}
.hours h2,.hours h3{color:#fff}
.day,.night{border-radius:30px;padding:2rem;height:100%;position:relative}
.day{background:linear-gradient(160deg,#7cc9ec,#bfe7f7);color:var(--night)}
.day h3{color:var(--night)}
.night{background:#0d2238;border:2px solid rgba(255,255,255,.18)}
.day .sun-img{width:84px;position:absolute;top:1.2rem;right:1.4rem}
.night .moon-img{width:72px;position:absolute;top:1.2rem;right:1.4rem}
.hrs{list-style:none;padding:0;margin:1.2rem 0 0;max-width:22rem}
.hrs li{display:flex;justify-content:space-between;gap:1rem;padding:.4rem 0;border-bottom:1px dashed rgba(20,48,74,.3);font-weight:700}
.closed{display:flex;align-items:center;gap:.8rem;margin-top:1rem;color:#cfe3ef;font-weight:700}
.closed img{width:48px}

/* team */
.person{text-align:center}
.portrait{width:210px;height:210px;border-radius:50%;object-fit:cover;border:6px solid #fff;box-shadow:10px 10px 0 var(--sun);margin:0 0 1.6rem;display:inline-block}
.person:nth-child(2) .portrait{box-shadow:10px 10px 0 var(--green)}
.person:nth-child(3) .portrait{box-shadow:10px 10px 0 var(--teal)}
.person h3{font-size:1.6rem;margin-bottom:.1rem}
.person .role{font-weight:800;color:var(--green);margin-bottom:.6rem}
.dog{width:150px}

/* testimonial band */
.band{background:var(--green);color:#fff;padding:4.5rem 0}
.band blockquote{font-family:var(--display);font-weight:500;font-size:clamp(1.25rem,2.4vw,1.75rem);line-height:1.4;margin:0 auto;max-width:52rem}
.band cite{display:block;margin-top:1rem;font-style:normal;font-weight:800;font-family:var(--body);opacity:.9}
.band .bird3{width:90px;margin-bottom:1rem}

/* patients */
.card-soft{background:#fff;border-radius:26px;border:3px solid var(--sky-d);padding:1.8rem;height:100%;position:relative}
.card-soft h3{font-size:1.5rem}
.card-soft .mascot{position:absolute;top:-52px;right:18px;width:84px}
.nolonger{background:#fdeceb;border-radius:14px;padding:.8rem 1rem;font-weight:700;color:#7a1f1a}
.nolonger ul{margin:.3rem 0 0}
.formgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.8rem;list-style:none;padding:0;margin:0}
.formgrid a{display:flex;align-items:center;gap:.7rem;background:#fff;border:2px solid var(--sky-d);border-radius:16px;padding:.8rem 1rem;font-weight:800;text-decoration:none;color:var(--teal-d)}
.formgrid a:hover{border-color:var(--teal);background:var(--sky)}
.formgrid i{color:var(--green);font-size:1.3rem}

/* resources accordion */
.accordion{--bs-accordion-border-color:var(--sky-d);--bs-accordion-active-bg:var(--sky);--bs-accordion-active-color:var(--teal-d);--bs-accordion-btn-focus-box-shadow:0 0 0 .2rem rgba(255,201,51,.6)}
.accordion-button{font-family:var(--display);font-weight:600;font-size:1.25rem}
.linklist{list-style:none;margin:0;padding:0;columns:2 260px;column-gap:2rem}
.linklist li{padding:.3rem 0;break-inside:avoid}
.linklist a{font-weight:700}
.res-head{display:flex;align-items:flex-end;gap:1rem}
.res-head img{width:110px}

/* contact */
.contact dt{font-family:var(--display);font-weight:500;color:var(--green);margin-top:1rem}
.contact dd{margin:0;font-weight:700}
.map{border:0;width:100%;height:100%;min-height:380px;border-radius:26px}
.hosp a{display:inline-block;background:var(--sky);border-radius:999px;padding:.25rem .9rem;margin:.15rem .1rem;font-weight:800;text-decoration:none}

/* footer */
.footer{background:var(--teal-d);color:#dcecf2;padding:3.2rem 0 2.2rem}
.footer a{color:#fff}
.footer .logo-chip{background:#fff;border-radius:18px;padding:.6rem .8rem;display:inline-block}
.footer .logo-chip img{width:90px;display:block}
.footer .birds img{height:70px;width:auto}
.powered{font-size:.9rem;opacity:.85;margin-top:1.6rem}
.powered a{font-weight:800}
