/* Woonsocket team feature — isolated styling for Happy Smile's established editorial design. */
.team-page-hero{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);min-height:520px;background:#f1efe5;border-bottom:1px solid var(--line)}
.team-page-hero .team-hero-copy{padding:70px 55px 82px max(40px,calc((100vw - 1270px)/2));align-self:center}
.team-breadcrumb{display:flex;gap:9px;align-items:center;flex-wrap:wrap;color:#5f7064;font-size:.82rem;letter-spacing:.025em;margin-bottom:58px}
.team-breadcrumb a{text-decoration:underline;text-decoration-color:rgba(7,61,50,.35);text-underline-offset:5px}
.team-breadcrumb a:hover{color:var(--forest)}
.team-page-hero h1{font-size:clamp(3.4rem,6.4vw,6.65rem);line-height:1.04;letter-spacing:-.076em;margin:0 0 28px}
.team-hero-copy .kicker{color:var(--green);margin-bottom:28px}
.team-hero-copy .team-intro{font-size:clamp(1.04rem,1.38vw,1.22rem);line-height:1.65;color:#49584f;max-width:625px;margin-bottom:29px}
.team-page-hero .team-hero-art{background:var(--forest);position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;color:var(--lime);isolation:isolate}
.team-hero-art:before,.team-hero-art:after{content:'';position:absolute;border:1px solid rgba(255,255,255,.22);border-radius:50%;width:620px;height:620px;z-index:0;pointer-events:none}
.team-hero-art:before{right:-355px;top:-205px}
.team-hero-art:after{left:-380px;bottom:-370px;width:680px;height:680px}
.team-hero-art-word{font-family:var(--serif);font-size:clamp(4rem,6vw,7rem);font-style:italic;letter-spacing:-.1em;line-height:.9;position:relative;z-index:1;transform:rotate(-7deg)}
.team-hero-art-caption{position:absolute;left:32px;bottom:30px;font-size:.77rem;font-weight:700;letter-spacing:.17em;color:rgba(255,255,255,.75)}
.team-section{background:var(--ivory)}
.team-section-header{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:47px}
.team-section-header h2{max-width:740px;line-height:1.09}
.team-section-header .kicker{color:var(--green)}
.team-section-lead{max-width:350px;color:var(--gray);font-size:1.04rem;line-height:1.6;margin:0 0 5px}
.team-card-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.team-person{min-width:0}
.team-person-photo{background:#e6e5db;overflow:hidden;aspect-ratio:3/4;position:relative}
.team-person-photo img{width:100%;height:100%;object-fit:cover;object-position:center 28%;transition:transform .45s ease}
.team-person:hover .team-person-photo img{transform:scale(1.035)}
.team-person-photo .team-person-day{position:absolute;left:12px;bottom:12px;background:var(--lime);color:var(--forest);font-size:.72rem;font-weight:800;letter-spacing:.045em;padding:7px 10px}
.team-person-meta{padding:21px 0 0;border-top:3px solid var(--forest);margin-top:10px}
.team-person-label{font-size:.73rem;letter-spacing:.13em;font-weight:750;color:var(--green);text-transform:uppercase;margin:0 0 10px}
.team-person h3{font-size:clamp(1.38rem,2.1vw,2rem);line-height:1.18;letter-spacing:-.052em;margin:0 0 10px}
.team-person-note{font-size:.95rem;line-height:1.65;color:#59635c;margin:0}
.team-section-footer{display:flex;align-items:center;justify-content:space-between;gap:28px;border-top:1px solid var(--line);margin-top:54px;padding-top:28px}
.team-section-footer p{color:var(--gray);max-width:620px;margin:0;font-size:.96rem;line-height:1.65}
.team-section-footer .btn{flex-shrink:0}
.team-info-bar{padding:36px 0;background:#e9eee4;border-top:1px solid rgba(7,61,50,.12)}
.team-info-inner{display:flex;justify-content:space-between;align-items:center;gap:28px}
.team-info-inner p{margin:0;font-size:1.02rem}
.team-info-inner .team-info-mark{font-family:var(--serif);font-style:italic;font-size:1.85rem;letter-spacing:-.04em;color:#30705a}
/* Team introduction woven into Woonsocket location page. */
.woonsocket-team-preview{background:var(--ivory);border-top:1px solid var(--line)}
.woonsocket-team-preview .team-preview-heading{display:flex;align-items:end;justify-content:space-between;gap:35px;margin-bottom:37px}
.woonsocket-team-preview .team-preview-heading h2{font-size:clamp(2.5rem,4.7vw,4.8rem)}
.woonsocket-team-preview .team-preview-heading-copy{max-width:380px;color:var(--gray)}
.woonsocket-team-preview .team-preview-heading-copy p{font-size:1.04rem;line-height:1.65;margin-bottom:15px}
.team-preview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.team-preview-card{display:block;min-width:0}
.team-preview-card img{width:100%;height:auto;aspect-ratio:4/4.7;object-fit:cover;object-position:center 28%;background:#e6e5db;transition:filter .2s}
.team-preview-card:hover img{filter:brightness(1.06)}
.team-preview-card-meta{border-top:1px solid var(--ink);padding-top:16px;margin-top:13px}
.team-preview-card h3{font-size:clamp(1.18rem,1.65vw,1.65rem);margin:0 0 7px;letter-spacing:-.045em}
.team-preview-card p{font-size:.81rem;text-transform:uppercase;letter-spacing:.10em;color:#526f60;font-weight:700;margin:0;line-height:1.5}
.team-preview-bottom{margin-top:34px;display:flex;justify-content:flex-end}
.team-about-link{margin:25px 0 0!important;padding-top:20px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px}
.team-about-link .team-about-pill{font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;color:var(--green);font-weight:750}
.team-about-link .text-link{font-size:.98rem;color:var(--ink)}
@media(max-width:1090px){.team-card-grid,.team-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 18px}.team-person-photo{aspect-ratio:4/5}}
@media(max-width:780px){
 .team-page-hero{grid-template-columns:1fr;min-height:0}
 .team-page-hero .team-hero-copy{padding:58px 25px 62px}
 .team-breadcrumb{margin-bottom:39px}
 .team-page-hero h1{font-size:clamp(3.2rem,11vw,5.3rem)}
 .team-page-hero .team-hero-art{min-height:170px}
 .team-hero-art-word{font-size:4.5rem}
 .team-hero-art-caption{left:23px;bottom:19px}
 .team-section-header,.woonsocket-team-preview .team-preview-heading{flex-direction:column;align-items:flex-start;gap:14px}
 .team-section-lead,.woonsocket-team-preview .team-preview-heading-copy{max-width:660px}
 .team-section-footer,.team-info-inner{flex-direction:column;align-items:flex-start}
 .team-section-footer .btn{width:100%}
}
@media(max-width:480px){
 .team-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 12px}
 .team-card-grid{grid-template-columns:1fr;gap:42px}
 .team-person-photo{aspect-ratio:4/4.7}
 .team-person h3{font-size:1.57rem}
 .team-person-label{font-size:.69rem;letter-spacing:.08em}
 .team-person-note{font-size:.98rem}
 .team-preview-card img{aspect-ratio:3/4}
 .team-preview-card-meta{padding-top:12px;margin-top:10px}
 .team-preview-card h3{font-size:1.13rem}
 .team-preview-card p{font-size:.69rem;letter-spacing:.065em}
 .team-section{padding-top:68px;padding-bottom:70px}
 .woonsocket-team-preview{padding-top:70px;padding-bottom:70px}
 .team-person-photo .team-person-day{font-size:.66rem;left:8px;bottom:8px}
}
@media(max-width:355px){.team-card-grid,.team-preview-grid{grid-template-columns:1fr}.team-person-photo{aspect-ratio:4/5}.team-preview-card img{aspect-ratio:4/5}}

/* 2026-11-09 — Dr. Park included as featured Woonsocket provider, with existing four staff below. */
.team-owner-feature{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);background:#eaf0e7;border:1px solid rgba(7,61,50,.12);overflow:hidden;margin-bottom:79px;min-height:490px}
.team-owner-photo{min-width:0;min-height:490px;background:#ddd6c7}
.team-owner-photo img{width:100%;height:100%;min-height:490px;object-fit:cover;object-position:center 34%}
.team-owner-copy{padding:clamp(32px,5vw,74px);display:flex;flex-direction:column;justify-content:center;align-items:flex-start;min-width:0}
.team-owner-copy .kicker{color:var(--green);font-size:.76rem;margin-bottom:20px}
.team-owner-copy h3{font-family:var(--display);font-size:clamp(2.65rem,4.5vw,4.9rem);font-weight:800;letter-spacing:-.07em;line-height:1.06;margin-bottom:24px}
.team-owner-copy>p:not(.kicker){font-size:1.09rem;line-height:1.75;max-width:580px;color:#455b4e;margin-bottom:22px}
.team-owner-details{display:flex;align-items:center;flex-wrap:wrap;gap:10px 19px;border-top:1px solid rgba(7,61,50,.21);border-bottom:1px solid rgba(7,61,50,.21);padding:17px 0;margin:4px 0 21px;width:100%}
.team-owner-details span{font-size:.72rem;letter-spacing:.13em;color:#46695b;font-weight:800}
.team-owner-details strong{font-size:.93rem;color:var(--forest)}
.team-staff-heading{display:flex;justify-content:space-between;align-items:end;gap:22px;margin-bottom:28px}
.team-staff-heading .kicker{margin:0 0 8px;color:var(--green)}
.team-staff-heading h3{font-family:var(--display);font-size:clamp(2rem,3.4vw,3.5rem);line-height:1.16}
.woonsocket-team-preview .team-preview-grid{row-gap:24px}
.team-preview-owner{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);background:#eaf0e7;min-height:380px;border:1px solid rgba(7,61,50,.11);margin-bottom:18px;overflow:hidden}
.team-preview-owner:hover{background:#e2ece0}
.team-preview-owner-photo{width:100%;height:100%;min-height:380px;overflow:hidden}
.team-preview-owner-photo img{width:100%;height:100%;min-height:380px;max-height:480px;object-fit:cover;object-position:center 33%;transition:transform .45s}
.team-preview-owner:hover img{transform:scale(1.025)}
.team-preview-owner-copy{padding:clamp(28px,4.5vw,67px);align-self:center}
.team-preview-owner-copy .kicker{font-size:.74rem;color:var(--green);margin-bottom:20px}
.team-preview-owner-copy h3{font-family:var(--display);font-size:clamp(2.7rem,4vw,4.6rem);line-height:1.08;letter-spacing:-.075em;margin:0 0 17px}
.team-preview-owner-role{font-size:.94rem;font-weight:700;color:var(--green);margin-bottom:6px}
.team-preview-owner-days{font-size:1rem;color:#4d5d53;margin-bottom:23px}
.team-preview-owner-copy .text-link{display:inline-block}
.team-about-schedule{margin-top:15px!important;padding-top:18px;border-top:1px solid var(--line);font-size:1rem!important}
.team-about-schedule .text-link{display:inline-block;margin-left:8px}
@media(max-width:780px){
 .team-owner-feature,.team-preview-owner{grid-template-columns:1fr}
 .team-owner-photo,.team-owner-photo img{min-height:0;height:auto;max-height:480px;aspect-ratio:1.05/1;object-fit:cover;object-position:center 35%}
 .team-preview-owner-photo,.team-preview-owner-photo img{min-height:0;max-height:400px;aspect-ratio:1.35/1;object-fit:cover;object-position:center 32%}
 .team-owner-copy,.team-preview-owner-copy{padding:28px 27px 34px}
 .team-owner-copy h3,.team-preview-owner-copy h3{font-size:clamp(2.5rem,8vw,4rem)}
 .team-owner-feature{margin-bottom:59px}
 .team-staff-heading{display:block}
}
@media(max-width:480px){
 .team-owner-copy,.team-preview-owner-copy{padding:26px 21px 30px}
 .team-owner-copy h3,.team-preview-owner-copy h3{font-size:2.65rem}
 .team-owner-photo img{aspect-ratio:1.02/1;object-position:center 30%}
 .team-preview-owner-photo img{aspect-ratio:1.15/1;object-position:center 31%}
 .team-owner-copy>p:not(.kicker){font-size:1rem}
 .team-owner-feature{margin-bottom:49px}
 .team-preview-owner{margin-bottom:5px}
 .team-about-schedule .text-link{margin-left:0}
}

/* Equal-size staff cards, including Dr. Park. Existing site portrait reused. */
@media(min-width:1091px){
 .team-card-grid,.woonsocket-team-preview .team-preview-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:17px}
 .team-person h3{font-size:clamp(1.18rem,1.65vw,1.55rem)}
 .team-preview-card h3{font-size:clamp(1.13rem,1.5vw,1.42rem)}
}
.team-person-photo--park,.team-preview-card--park>img{background:#e8e9df}
.team-person-photo--park img{object-fit:contain!important;object-position:center center!important;transform:none!important}
.team-preview-card--park>img{object-fit:contain!important;object-position:center center!important}
.team-preview-card--park:hover img{filter:none}
.team-person-learn{margin-top:14px;font-size:.83rem}
.team-person-learn .text-link{font-size:.85rem}
.team-preview-card .team-preview-days{display:block;font-size:.76rem;font-weight:650;letter-spacing:.01em;color:#5b655f;margin-top:8px;text-transform:none}
@media(max-width:1090px){.team-card-grid,.woonsocket-team-preview .team-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:27px 18px}}
@media(max-width:480px){.team-card-grid{grid-template-columns:1fr}.woonsocket-team-preview .team-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 12px}}
@media(max-width:355px){.woonsocket-team-preview .team-preview-grid{grid-template-columns:1fr}}

/* Lincoln team and shared Our Team hub - 2026-11-09. */
.lincoln-team-preview{background:var(--ivory)}
@media(min-width:1091px){.lincoln-team-preview .team-preview-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:28px 18px}.team-hub-section .team-location-choices{grid-template-columns:repeat(2,minmax(0,1fr))}}
.team-location-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.team-location-choice{display:block;overflow:hidden;background:#e9eee4;border:1px solid rgba(7,61,50,.15);color:var(--forest);transition:transform .2s ease,border-color .2s ease}
.team-location-choice:hover{transform:translateY(-3px);border-color:var(--forest)}
.team-location-choice-media{height:285px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;background:var(--forest);overflow:hidden}
.team-location-choice-media img{width:100%;height:285px;object-fit:cover;object-position:center 20%;filter:saturate(.9)}
.team-location-choice-copy{padding:31px 33px 35px}
.team-location-eyebrow{font-size:.70rem;letter-spacing:.13em;font-weight:800;color:#3f795e}
.team-location-choice-copy h3{font-family:var(--display);font-size:clamp(1.7rem,2.5vw,2.75rem);letter-spacing:-.055em;line-height:1.2;margin:13px 0 15px}
.team-location-choice-copy h3 span{font-family:var(--sans);font-size:.75em;margin-left:5px}
.team-location-choice-copy p{font-size:.99rem;line-height:1.6;color:#4c5e51;max-width:500px;margin:0}
@media(max-width:1090px){.lincoln-team-preview .team-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:780px){.team-location-choices{grid-template-columns:1fr}.team-location-choice-media,.team-location-choice-media img{height:245px}}
@media(max-width:480px){.team-location-choice-media,.team-location-choice-media img{height:200px}.team-location-choice-copy{padding:24px 21px 27px}.team-location-choice-copy h3{font-size:1.8rem}.lincoln-team-preview .team-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
