/* Shared type and spacing, applied to every page after its legacy stylesheet. */
:root{--type-title:48px;--type-section:32px;--type-subhead:23px;--type-body:17px;--type-small:14px}
body{font-size:var(--type-body);line-height:1.65}
main h1,.pagehead h1,main h1.page-title{font-size:var(--type-title);line-height:1.12;font-weight:400;margin:0 0 24px;letter-spacing:-.02em}
main h2,.sec h2,.hero h2{font-size:var(--type-section);line-height:1.2;font-weight:500;margin:0 0 20px}
main h3,.sec h3,.aud-title{font-size:var(--type-subhead);line-height:1.25;font-weight:500;margin:0 0 12px}
main p,.pagehead p,.welcome-copy p,.welcome-copy .hero-lede,.sec .body,.sec p,.card p,.group p,.turn p,.zone-body p,.zone-body li,.aside p,.aud-desc,.tool-card-desc,.row .by,.plain li,ul.plain li,.term p{font-size:var(--type-body);line-height:1.65}
main p,.welcome-copy p,.welcome-copy .hero-lede{margin:0 0 20px}
main p:last-child{margin-bottom:0}
.pagehead p+p,.sec p+p{margin-top:0}
.pagehead{padding:36px 0 20px}
main section,.hero,.resources,.audience,.sec,.about-story,.about-background,.about-invitation{padding:36px 0}
.nav{padding:12px 0}
.nav-mid{gap:24px}
.sf-brand{font-size:23px;line-height:1.4}
.sf-top{grid-template-columns:1.3fr 1fr 1.2fr;gap:32px;padding:32px 0}
.sf-bot{padding:18px 0;font-size:var(--type-small)}
/* A floated portrait lets the welcome use the full width underneath it. */
.hero-welcome .hero-grid{display:flow-root}
.hero-welcome .hero-portrait{float:right;width:28%;max-width:300px;margin:4px 0 24px 40px}
.hero-welcome .hero-portrait-img{aspect-ratio:3/4}
.hero-welcome .welcome-copy{display:block}
.hero-welcome .welcome-copy p{text-align:justify;hyphens:auto}
.hero-welcome .hero-actions{margin:24px 0 0;clear:both}
.hero-portrait-tag-meta{font-size:var(--type-small)}
.locations{padding:28px 0}
.locations-grid{max-width:1280px;margin:0 auto;padding:0 32px;gap:36px}
.location{padding:0;min-height:0}
.loc-name{font-size:var(--type-subhead);margin-bottom:12px;font-style:normal}
.loc-context{font-size:var(--type-body);line-height:1.65}
.tool-card{padding:20px;gap:8px}
.tool-card-n{font-size:var(--type-small);font-family:'Inter',sans-serif}
.tool-card-name{font-size:var(--type-subhead);line-height:1.25}
.tool-more{font-size:var(--type-body)}
section.cta{padding:36px 0}
.cta h2{margin-bottom:24px;color:var(--paper)}
.cta-card{padding:28px;margin-top:0}
.cta-contact{margin-bottom:24px}
.cta-card-row-value,.cta-card-row-label,.cta-form label,.cta-form input,.cta-form select,.cta-form textarea{font-size:var(--type-body)}
.cta-card-row-value{overflow-wrap:anywhere}
.cta-form label{font-weight:500}
.cta-form input,.cta-form select,.cta-form textarea{padding:10px 0}
.cta-form textarea{min-height:84px}
.cta-form button{font-size:var(--type-body);padding:12px 24px}
.audience-intro{max-width:none;margin-bottom:28px}
.audience-intro p{margin-bottom:16px}
.audience-grid{margin-top:0}
/* Full original About copy, with the same flowing portrait treatment. */
.about-story .wrap{display:flow-root}
.about-story{background:var(--ivory)}
.about-portrait{float:right;width:28%;max-width:300px;aspect-ratio:3/4;object-fit:cover;object-position:50% 22%;margin:4px 0 24px 40px;filter:contrast(1.02) saturate(.85)}
.about-story p{text-align:justify;hyphens:auto}
.about-story h2{margin-top:28px;clear:both}
.about-background{background:var(--paper)}
.background-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px 48px}
.background-list{padding-left:22px;list-style:disc;font-size:var(--type-body);line-height:1.65}
.background-list li{padding-left:3px;margin-bottom:9px}
.about-invitation{padding:24px 0}
/* Tools retain every exercise while showing related content side by side. */
.cards,.routes,.feelings,.turns,.band{margin-top:24px}
.card,.group,.turn{padding:20px}
.cards{grid-template-columns:repeat(4,minmax(0,1fr))}
.zone-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}
.zone{padding:18px 36px 18px 18px;border:0;border-bottom:3px solid transparent}
.zone[aria-selected="true"]{border-bottom-color:var(--zc);border-left:0}
.zone::after{right:14px}
.zone-name{font-size:var(--type-subhead)}
.zone-sum{font-size:var(--type-small)}
.zone-body{padding:24px}
.zone-cols{gap:32px}
.zone-body li{margin-bottom:6px}
.band-foot,.sec .band-foot{font-size:var(--type-small);margin-top:16px}
.stopsign{width:100px}
.stop-head{gap:28px}
.routes{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.why{font-style:normal}
.group .ic{display:none}
.aside{margin-top:20px;padding:16px 20px}
.feelings{grid-template-columns:repeat(4,minmax(0,1fr))}
.feeling{padding:18px}
.feeling dt{font-size:var(--type-subhead)}
.feeling dd,.ramp,.feel-note{font-size:var(--type-body)}
.turns{grid-template-columns:repeat(4,minmax(0,1fr))}
.turn{display:block}
.turn-n{font-size:var(--type-small);margin-bottom:10px}
.turn .turn-eg{font-size:var(--type-body);line-height:1.65;margin-top:12px}
.returnfig{display:none}
ol.steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:20px;margin-top:24px}
ol.steps li{font-size:var(--type-body);padding-left:24px;margin:0}
ol.steps li::before{width:auto;height:auto;top:0;font-size:var(--type-body)}
#video .wrap{display:grid;grid-template-columns:1fr 1.4fr;gap:0 32px;align-items:start}
#video h2,#video .body{grid-column:1}
#video .vid{grid-column:2;grid-row:1 / span 3;margin:0}
#video .videoframe{margin-top:0}
.vid-credit{font-size:var(--type-small)}
/* Resources are visible and usable directly on the page. */
#meditations .rows,#reading .rows,#recovery .rows{grid-template-columns:repeat(2,minmax(0,1fr))}
.row{padding:20px;gap:20px}
.row .title{font-size:var(--type-subhead);line-height:1.25}
.row .go{font-size:var(--type-small);white-space:normal}
.resource-practices{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.resource-practice{padding:24px;background:var(--paper-2)}
.resource-practice ol{padding-left:24px;margin:16px 0}
.resource-practice li{padding-left:4px;margin-bottom:10px}
.resource-credit,.sec .resource-credit{font-size:var(--type-small);color:var(--ink-3)}
.terms{margin-top:12px}
.term{padding:16px 0;grid-template-columns:230px minmax(0,1fr);gap:32px}
@media(max-width:1100px){.feelings,.turns{grid-template-columns:repeat(2,minmax(0,1fr))}ol.steps{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:800px){
 :root{--type-title:36px;--type-section:28px;--type-subhead:21px}
 .cards,.routes{grid-template-columns:repeat(2,minmax(0,1fr))}
 .zone-tabs{grid-template-columns:1fr}
 .zone-cols{grid-template-columns:1fr;gap:20px}
 .background-grid,.resource-practices{grid-template-columns:1fr}
 #video .wrap{display:block}
 #video .vid{margin-top:20px}
 .term{grid-template-columns:1fr;gap:8px}
 .sf-top{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
 .wrap,.locations-grid{padding-left:20px;padding-right:20px}
 main section,.hero,.sec,.resources,.audience,.about-story,.about-background{padding:28px 0}
 .pagehead{padding:28px 0 12px}
 .hero-welcome .hero-portrait,.about-portrait{float:none;width:100%;max-width:220px;margin:0 auto 24px}
 .hero-welcome .welcome-copy p,.about-story p{text-align:left;hyphens:none}
 .locations-grid{grid-template-columns:1fr;gap:24px}
 .cards,.routes,.feelings,.turns,#meditations .rows,#reading .rows,#recovery .rows{grid-template-columns:1fr}
 .zone-body{padding:20px}
 .resource-practice{padding:20px}
 ol.steps{grid-template-columns:1fr;gap:16px}
 .cta-card{padding:20px}
 .cta-contact,.cta-form{grid-template-columns:1fr;gap:16px}
 .cta-card-row{gap:6px}
 .sf-top{gap:24px}
 .sf-brand{font-size:21px}
}

/* Keep section spacing separate from buttons and forms. */
.sf{padding:0}
.closing a.cta{padding:12px 22px;font-size:var(--type-body);line-height:1.4;margin-top:18px}
.cta-form input,.cta-form select,.cta-form textarea{font-family:'Inter',sans-serif;font-style:normal;font-weight:400}
.cta-form textarea::placeholder{font-family:'Inter',sans-serif;font-style:normal;font-weight:400}
.zone-body .zone-h{font-family:'Fraunces',Georgia,serif;font-weight:500;font-size:var(--type-subhead);text-transform:none;letter-spacing:0;line-height:1.25;margin-bottom:12px}
.lvl{font-size:var(--type-small)}
.about-portrait{mix-blend-mode:multiply}

/* Office details sit with the portrait instead of a separate homepage strip. */
.portrait-offices{margin-top:18px;display:grid;gap:14px}
.portrait-offices address{font-size:var(--type-body);line-height:1.6;font-style:normal;color:var(--ink-2)}
.portrait-offices strong{font-weight:500}
.hero-welcome .hero-portrait{margin-bottom:20px}
@media(max-width:600px){.hero-welcome .hero-portrait{max-width:260px;margin-bottom:28px}.portrait-offices{gap:12px}}

/* Client documents share the site's quiet, open layout. */
.client-documents{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:24px}
.client-document{background:var(--paper-2,#f3ecdf);padding:28px;display:flex;flex-direction:column;align-items:flex-start}
.client-document p{flex:none}
.client-document > .text-link{margin-top:auto}
.text-link{font-weight:500;text-decoration:underline;text-underline-offset:5px}
.file-label{display:block;font-size:14px;font-weight:400;color:var(--ink-3,#625f56);margin-top:6px}
.text-link:focus-visible{outline:3px solid #756098;outline-offset:5px}
.featured-reading{display:grid;grid-template-columns:1fr 2fr;gap:32px;background:#eeeddf;padding:28px;margin:24px 0}
.featured-reading .resource-credit{margin-bottom:8px}
@media(max-width:700px){
 .client-documents,.featured-reading{grid-template-columns:1fr;gap:20px}
 .client-document,.featured-reading{padding:22px}
}

.document-button{display:inline-flex;align-items:center;justify-content:center;background:#3d4a35;color:#fff9ed;border:0;border-radius:3px;padding:13px 22px;font:500 16px/1.4 'Inter',sans-serif;text-decoration:none;cursor:pointer}
.document-button:hover{background:#2e3b27;color:#fff9ed}
.document-button:focus-visible{outline:3px solid #756098;outline-offset:5px}
