/* Dentistry @ Equinox: muted, minimal brand refresh. */
:root{
  --ink:#183e49;
  --teal:#0e485d;
  --deep:#0c4155;
  --aqua:#a8c5c4;
  --mint:#c5d9d4;
  --paper:#fbfcfa;
  --soft:#eef3f1;
  --line:#dce5e3;
  --body:#556d70;
  --wood:#dbc8b1;
  font-family:"Avenir Next",Avenir,"Helvetica Neue",Arial,sans-serif;
}
body{background:var(--paper)}
h1,h2,h3,.hero h1,.about h2,.section-heading h2,.team h2,.visit h2,.final-cta h2,.location-main h3,.care-card h3,.team-list h3,.intro-band p{
  font-family:inherit;
}
h1 em,h2 em,.location-main em{font-style:normal;font-weight:inherit}
.hero h1,.section-heading h2,.about h2,.team h2,.visit h2,.final-cta h2{font-weight:500;letter-spacing:-.065em}
.hero h1 em,.section-heading h2 em,.team h2 em,.location-main em{color:#668b89}
.eyebrow{color:#5b7e7e;font-weight:700;letter-spacing:.13em}
.site-header{background:rgba(251,252,250,.97)}
.brand{gap:0;line-height:0}
.brand img{display:block;width:172px;height:auto}
.desktop-nav a{font-weight:500;color:#435e63}
.header-cta{background:var(--teal);color:#fff;border-color:var(--teal);font-weight:600}
.header-cta:hover{background:#245d6f}
.hero{background:#f5f7f5;min-height:650px}
.hero-copy{background:#f8faf8}
.hero h1{font-size:clamp(54px,5.7vw,84px);line-height:1.08;margin-top:29px}
.hero h1 em{color:#678f8e}
.hero-lead{color:#536d70;font-size:18px;max-width:450px}
.hero-media{background:#e9eeeb}
.hero-media img{object-position:61% center}
.hero-media-caption{display:none}
.button{font-weight:600}
.button-dark{background:var(--teal)}
.text-link,.light-link{font-weight:600}
.dot{background:#88ada8}
.intro-band{background:#e7ddd0;color:var(--deep)}
.intro-band p{font-size:19px;font-weight:500;letter-spacing:-.035em}
.intro-band .mini-mark{color:var(--teal)}
.intro-band a{font-weight:600}
.care{background:#fff}
.section-heading h2,.team h2,.visit h2{font-size:clamp(48px,5vw,68px)}
.care-grid{gap:10px;border:0}
.care-card,.care-card:not(:first-child),.care-card:nth-child(3),.care-card:nth-child(4){border:0;padding:26px 24px 30px;min-height:315px;background:#eef3f1}
.care-card:nth-child(2){background:#e8f0ee}
.care-card:nth-child(3){background:#f1f4f1}
.care-card:nth-child(4){background:#e9efed}
.care-icon{color:#477b80}
.care-card h3{font-size:25px;font-weight:550;letter-spacing:-.045em}
.card-number{color:#668788}
.care-footer{border-top:1px solid var(--line);margin-top:34px}
.about{background:#afc7c3;color:var(--deep);position:relative}
.about:before{content:"";position:absolute;top:0;left:0;width:12%;height:6px;background:#d9c5aa}
.about h2{font-size:clamp(52px,5vw,74px)}
.about h2 em{color:#477d7f}
.about-copy>p:not(.eyebrow){color:#315f67}
.about .eyebrow-light{color:#426d71}
.about .light-link{color:var(--deep);border-color:#568487}
.film-frame{background:#e5d7c6;border:12px solid #e5d7c6;box-shadow:none}
.film-caption{color:#3d6c70}
.team{background:#fbfcfa}
.team-list h3{font-weight:500;letter-spacing:-.045em}
.visit{background:#f3f0eb}
.visit-panel{box-shadow:0 12px 35px #213c4010}
.hours-panel{background:#fff}
.location-panel{background:#e8e0d5}
.location-panel .panel-top,.location-panel .panel-top svg{color:#406e73}
.location-contact a,.directions{color:var(--deep)}
.location-panel .directions{border-color:#d5c6b4}
.final-cta{background:#0e485d}
.final-cta h2 em{color:#b3cfcb}
.site-footer{background:#0b3a4d}
.brand-footer img{width:189px}
.coverage-note{color:#6b7c7b}
@media(max-width:850px){
  .brand img{width:157px}
  .hero{min-height:0}
  .hero-copy{padding-top:69px}
  .hero h1{font-size:clamp(54px,8vw,80px)}
  .hero-media img{object-position:61% 45%}
  .intro-band a{color:var(--deep)}
  .care-grid{gap:10px}
  .care-card,.care-card:not(:first-child),.care-card:nth-child(3),.care-card:nth-child(4){border:0;padding:26px 22px;min-height:290px}
}
@media(max-width:620px){
  .hero h1{font-size:clamp(50px,13vw,69px)}
  .hero-media{height:95vw;min-height:360px}
  .hero-media img{object-position:62% center}
  .intro-band p{font-size:17px}
  .care-grid{gap:8px}
  .care-card,.care-card:not(:first-child),.care-card:nth-child(3),.care-card:nth-child(4){min-height:0;padding:25px 24px}
  .about h2{font-size:clamp(48px,11vw,64px)}
  .film-frame{border-width:7px}
  .location-panel{min-height:405px}
  .brand-footer img{width:183px}
}

/* Full-width hero and translucent white-on-teal navigation. */
.site-header{
  position:fixed;
  top:0;left:0;right:0;
  height:82px;
  background:rgba(8,55,73,.72);
  border-bottom:1px solid rgba(255,255,255,.25);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
}
.site-header .brand img{width:143px}
.site-header .desktop-nav a{color:#fff}
.site-header .desktop-nav a:hover{color:#d1e9e5}
.site-header .header-cta{background:#fff;color:var(--teal);border-color:#fff}
.site-header .header-cta:hover{background:#deeeeb;color:var(--teal)}
.site-header .menu-toggle{color:#fff}
.site-header .mobile-nav{background:rgba(10,61,78,.97);border-color:rgba(255,255,255,.2)}
.site-header .mobile-nav a{color:#fff;border-color:rgba(255,255,255,.2)}
.site-header .mobile-nav .mobile-request{background:#fff;color:var(--teal)}
html{scroll-padding-top:100px}
.hero{
  display:block;
  position:relative;
  min-height:760px;
  isolation:isolate;
  background:#edf0ed;
}
.hero::before{
  content:"";
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(90deg,rgba(250,251,249,.82) 0%,rgba(250,251,249,.52) 32%,rgba(250,251,249,.04) 64%);
}
.hero-media{position:absolute;inset:0;z-index:0;width:100%;height:100%;min-height:0;max-height:none}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:center 45%}
.hero-copy{
  position:relative;z-index:2;
  width:min(100% - 80px,1220px);
  min-height:760px;
  margin-inline:auto;
  padding:150px 0 75px;
  justify-content:flex-start;
  background:transparent;
}
.hero-copy-inner{width:min(100%,620px)}
.hero h1{font-size:clamp(57px,5.6vw,82px);max-width:630px;line-height:1.075}
.hero-lead{max-width:520px;color:#244c57;font-size:18px}
.hero-note{color:#305b60;margin-top:49px}
.hero .text-link{color:#17485a}
.care-footer{align-items:center}
.care-footer p{max-width:680px;line-height:1.6}
.care-footer strong{display:block;margin-bottom:5px;color:var(--teal);font-size:11px;letter-spacing:.14em;text-transform:uppercase}
.about h2{font-size:clamp(46px,4.1vw,61px);line-height:1.12}
.section-heading h2,.team h2{line-height:1.1}

@media(max-width:850px){
  .site-header{height:72px}
  .site-header .brand img{width:130px}
  .site-header .mobile-nav:not([hidden]){top:72px}
  .hero,.hero-copy{min-height:720px}
  .hero-copy{width:min(100% - 42px,1220px);padding:130px 0 62px}
  .hero h1{font-size:clamp(52px,7.6vw,70px)}
  .hero::before{background:linear-gradient(90deg,rgba(250,251,249,.88),rgba(250,251,249,.64) 48%,rgba(250,251,249,.08) 92%)}
  .hero-media{position:absolute;inset:0;height:100%;min-height:0;max-height:none}
  .hero-media img{object-position:65% center}
}
@media(max-width:620px){
  .site-header .brand img{width:124px}
  .hero,.hero-copy{min-height:760px}
  .hero-copy{width:min(100% - 36px,1220px);padding:126px 0 48px;align-items:flex-start}
  .hero-copy-inner{max-width:390px}
  .hero h1{font-size:clamp(48px,12vw,62px);line-height:1.07}
  .hero-lead{font-size:16px;line-height:1.55;max-width:350px}
  .hero-actions{margin-top:27px;gap:18px}
  .hero-note{margin-top:32px}
  .hero-media{height:100%;min-height:0;max-height:none}
  .hero-media img{object-position:71% center}
  .hero::before{background:linear-gradient(180deg,rgba(250,251,249,.95) 0%,rgba(250,251,249,.92) 42%,rgba(250,251,249,.54) 74%,rgba(250,251,249,.05) 100%)}
  .about h2{font-size:clamp(44px,10vw,56px)}
  .care-footer{align-items:flex-start}
}

/* Smaller inset CDCP card, adapted from the supplied artwork. */
.cdcp-banner{width:min(100% - 80px,1220px);margin:66px auto 86px;background:#af9c87;border-radius:22px;overflow:hidden}
.cdcp-main{position:relative;min-height:326px;overflow:hidden}
.cdcp-photo{position:absolute;inset:0 0 0 auto;width:51%;height:100%;object-fit:cover;object-position:center top}
.cdcp-content{position:relative;z-index:1;width:100%;margin-inline:auto;padding:37px 42px}
.cdcp-copy{max-width:535px;width:49%}
.cdcp-kicker{font-size:11px;text-transform:uppercase;letter-spacing:.15em;font-weight:750;color:#173d4c;margin:0 0 13px}
.cdcp-copy h2{font-family:inherit;font-size:clamp(42px,4vw,55px);font-weight:500;line-height:1.04;letter-spacing:-.065em;color:#fff;margin:0 0 16px}
.cdcp-copy>p:not(.cdcp-kicker){max-width:460px;font-size:15px;line-height:1.5;color:#173d4c;margin:0 0 15px}
.cdcp-availability{display:inline-block;border-top:1px solid rgba(20,63,76,.46);padding-top:10px;color:#123d4e;font-size:12px;font-weight:700;letter-spacing:.01em}
.cdcp-action{background:#0e485d;color:#fff}
.cdcp-action-inner{min-height:88px;display:flex;align-items:center;gap:clamp(20px,3vw,50px)}
.cdcp-button{min-height:47px;display:inline-flex;align-items:center;justify-content:space-between;gap:24px;padding:12px 17px;background:#f6d0a9;color:#0e485d;font-size:13px;font-weight:700;white-space:nowrap;transition:background .2s,transform .2s}
.cdcp-button:hover{background:#ffe0bc;transform:translateY(-2px)}
.cdcp-button svg{width:18px;height:18px}
.cdcp-phone{font-size:clamp(18px,2vw,25px);font-weight:500;letter-spacing:-.04em;white-space:nowrap}
.cdcp-phone:hover{text-decoration:underline;text-underline-offset:5px}
.cdcp-canada{width:153px;height:auto;flex:none;margin-left:auto}
@media(max-width:850px){
  .cdcp-banner{width:min(100% - 42px,1220px);margin:50px auto 68px}
  .cdcp-main{min-height:0;display:flex;flex-direction:column}
  .cdcp-content{width:100%;padding:38px 34px 34px}
  .cdcp-copy{width:min(100%,620px);max-width:none}
  .cdcp-copy h2{font-size:clamp(43px,6.5vw,58px)}
  .cdcp-photo{position:relative;inset:auto;width:100%;height:290px;object-position:center top}
  .cdcp-action-inner{width:calc(100% - 68px);padding-block:18px;flex-wrap:wrap;gap:16px 27px}
  .cdcp-canada{width:140px}
}
@media(max-width:620px){
  .cdcp-banner{width:calc(100% - 36px);margin:42px auto 58px;border-radius:18px}
  .cdcp-content{padding:31px 25px 29px}
  .cdcp-copy h2{font-size:clamp(42px,10.5vw,54px);margin-bottom:17px}
  .cdcp-copy>p:not(.cdcp-kicker){font-size:15px;margin-bottom:19px}
  .cdcp-photo{height:255px}
  .cdcp-action-inner{width:calc(100% - 50px);display:grid;grid-template-columns:1fr auto;min-height:0;padding-block:23px;gap:17px}
  .cdcp-button{grid-column:1/-1;width:max-content;max-width:100%;min-height:47px}
  .cdcp-phone{font-size:16px}
  .cdcp-canada{width:112px;grid-column:2;grid-row:2}
}

/* Tone-on-tone children's portrait hero. */
.hero{background:#758d84}
.hero::before{background:linear-gradient(90deg,rgba(5,45,58,.45) 0%,rgba(5,45,58,.32) 32%,rgba(5,45,58,.07) 63%,transparent 77%)}
.hero-media img{object-position:center 46%}
.hero .eyebrow,.hero h1,.hero-lead,.hero-note,.hero .text-link{color:#fff}
.hero .eyebrow-rule{background:#e8eee9}
.hero h1 em{color:#eee7d8}
.hero .button-dark{background:#f3eee6;color:#0e485d}
.hero .button-dark:hover{background:#fff}
.hero .dot{background:#f6d0a9}
@media(max-width:850px){
  .hero::before{background:linear-gradient(90deg,rgba(5,45,58,.55),rgba(5,45,58,.38) 51%,rgba(5,45,58,.04) 95%)}
  .hero-media img{object-position:67% center}
}
@media(max-width:620px){
  .hero{display:flex;flex-direction:column;min-height:0}
  .hero::before{display:none}
  .hero-copy{width:100%;min-height:0;margin:0;padding:127px 18px 48px;background:#506c66;justify-content:center}
  .hero-copy-inner{max-width:440px}
  .hero-media{position:relative;inset:auto;width:100%;height:auto;min-height:0;max-height:none;aspect-ratio:1.15}
  .hero-media img{width:100%;height:100%;object-fit:cover;object-position:68% center}
  .hero-note{margin-top:30px}
}

/* Real team portraits, with a consistent editorial crop. */
.team-grid{grid-template-columns:1fr;gap:42px}
.team-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;border-top:0}
.team-member{min-width:0;background:#eef3f0}
.team-portrait{aspect-ratio:1;overflow:hidden;background:#fff;align-self:start}
.portrait-frame{position:relative;isolation:isolate;width:100%;aspect-ratio:1;overflow:hidden;background:#fff}
.portrait-frame::before{content:"";position:absolute;left:5.5%;top:11%;width:89%;aspect-ratio:1;border-radius:2%;background:#ececec;z-index:0}
.portrait-frame img{position:absolute;z-index:1;max-width:none;width:var(--portrait-width);height:var(--portrait-height);left:var(--portrait-left);top:var(--portrait-top);object-fit:fill;filter:sepia(.035) saturate(1.16) contrast(1.025);-webkit-mask-image:var(--portrait-mask);mask-image:var(--portrait-mask);-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;mask-mode:alpha}
.portrait-grace{--portrait-mask:url("assets/dr-grace-alpha-mask.png");--portrait-width:118.532134%;--portrait-height:136.744880%;--portrait-left:-10.133021%;--portrait-top:1.099862%}
.portrait-doki{--portrait-mask:url("assets/dr-doki-alpha-mask.png");--portrait-width:126.713300%;--portrait-height:137.483930%;--portrait-left:-23.143748%;--portrait-top:8.684295%}
.portrait-jenn{--portrait-mask:url("assets/dr-jenn-alpha-mask.png");--portrait-width:119.513492%;--portrait-height:138.999388%;--portrait-left:-16.891632%;--portrait-top:13.739578%}
.portrait-shirly{--portrait-mask:url("assets/dr-shirly-alpha-mask.png");--portrait-width:134.817823%;--portrait-height:112.370129%;--portrait-left:-18.229553%;--portrait-top:2.760795%}
.team-member-info{display:flex;flex-direction:column;min-height:157px;padding:20px 23px 25px}
.team-member-info span{font-size:11px;font-weight:700;letter-spacing:.1em;color:#73928e}
.team-list h3{font-size:clamp(21px,2vw,27px);line-height:1.2;margin:12px 0 9px}
.team-list p{grid-column:auto;font-size:14px;line-height:1.45;margin:auto 0 0}
@media(max-width:850px){
  .team-list{grid-template-columns:1fr;gap:14px}
  .team-member{display:grid;grid-template-columns:240px minmax(0,1fr)}
  .team-portrait{aspect-ratio:1}
  .team-member-info{min-height:0;justify-content:center;padding:22px 28px}
  .team-list p{margin:2px 0 0}
}
@media(max-width:620px){
  .team-grid{gap:31px}
  .team-member{display:block}
  .team-portrait{aspect-ratio:1}
  .team-member-info{min-height:135px;padding:18px 21px 23px}
  .team-list h3{font-size:24px}
}

/* Founder featured above the three remaining dentist cards. */
.team-founder{grid-column:1/-1;display:grid;grid-template-columns:calc((100% - 36px)/3) minmax(0,1fr);column-gap:18px;margin-bottom:10px}
.team-founder .team-member-info{justify-content:center;padding:32px clamp(24px,3vw,44px)}
.team-name-row{display:flex;align-items:center;flex-wrap:wrap;gap:14px 28px;margin:15px 0 13px}
.team-name-row h3{flex:1 1 270px;max-width:410px;margin:0;font-size:clamp(27px,3vw,40px)}
.team-profile-link{flex:none;display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:10px 0;border-bottom:1px solid #668b89;font-size:14px;font-weight:700;color:var(--teal);white-space:nowrap}
.team-profile-link svg{width:18px;height:18px}
.team-profile-link:hover{color:#12647a;border-color:currentColor}
.team-profile-link:focus-visible{outline:2px solid var(--teal);outline-offset:5px}
.team-founder .team-member-info>p{margin:0}
@media(max-width:850px){
  .team-founder{grid-template-columns:240px minmax(0,1fr)}
  .team-founder .team-member-info{padding:24px 28px}
  .team-name-row{gap:8px 18px;margin:12px 0}
  .team-name-row h3{font-size:27px}
}
@media(max-width:620px){
  .team-founder{display:block;margin-bottom:10px}
  .team-founder .team-member-info{padding:23px 21px 27px}
  .team-name-row h3{font-size:28px;flex-basis:100%}
}

/* Keep the hero subjects clear of the fixed header on wide monitors. */
@media(min-width:851px){
  .hero,.hero-copy{min-height:max(760px,48vw)}
  .hero-media{inset:82px 0 0;height:auto}
  .hero-media img{object-position:center top}
}

/* Consistent profile access for each dentist. */
.team-member:not(.team-founder) .team-profile-link{align-self:flex-start;font-size:13px;margin:2px 0 14px;padding:7px 0;min-height:40px}

/* Open equal-weight profiles on one continuous sage field. */
#team{padding-block:70px;background:#eef3f0}
#team .team-grid{gap:28px}
#team .team-heading{max-width:680px}
#team .team-heading h2{font-size:clamp(32px,3.4vw,46px);line-height:1.13;letter-spacing:-.045em;margin-top:14px}
#team .team-heading h2 em{font-style:normal}
#team .team-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;align-items:stretch}
#team .team-member{display:flex;flex-direction:column;min-width:0;overflow:hidden;background:transparent}
#team .team-portrait{display:block;width:100%;max-width:240px;height:auto;aspect-ratio:1;margin:0 auto;align-self:center;flex:none;background:transparent}
#team .team-portrait::before{display:none}
#team .team-portrait:focus-visible{outline:3px solid var(--teal);outline-offset:-3px}
#team .team-member-info{display:flex;flex-direction:column;padding:20px 10px 22px;min-height:224px;flex:1}
#team .team-member-info>span{font-size:10px;padding:0;min-height:15px;letter-spacing:.08em}
#team .team-list h3{font-size:23px;line-height:1.2;min-height:56px;margin:11px 0 10px;letter-spacing:-.035em}
#team .team-list p{font-size:13px;line-height:1.5;min-height:39px;margin:0 0 12px}
#team .team-profile-link{align-self:flex-start;font-size:13px;padding:7px 0;margin:auto 0 0;min-height:40px}
@media(max-width:1000px){
 #team .team-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
 #team .team-portrait{max-width:240px}
 #team .team-member-info{min-height:216px;padding:20px 24px}
}
@media(max-width:620px){
 #team{padding-block:48px}
 #team .team-grid{gap:24px}
 #team .team-heading h2{font-size:34px;max-width:360px}
 #team .team-list{gap:12px}
 #team .team-member{display:flex}
 #team .team-member-info{min-height:226px;padding:16px 3px 18px}
 #team .team-list h3{font-size:20px;min-height:72px;margin:9px 0}
 #team .team-list p{font-size:12px;min-height:36px;margin:0 0 10px}
 #team .team-member-info>span{font-size:9px}
 #team .team-profile-link{font-size:12px;min-height:40px;padding:7px 0}
}
@media(max-width:360px){
 #team .team-list{grid-template-columns:1fr}
 #team .team-portrait{max-width:220px}
 #team .team-member-info{min-height:0;padding:20px}
 #team .team-list h3{min-height:0;font-size:24px}
 #team .team-list p{min-height:0}
}
