/* Reading, questions, and the next step. Kept together for future maintenance. */
.floating-top{
  position:fixed;z-index:15;
  right:calc(20px + env(safe-area-inset-right,0px));
  bottom:calc(20px + env(safe-area-inset-bottom,0px));
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-height:48px;padding:10px 17px;border:1px solid #9ca889;
  border-radius:14px 16px 14px 16px;background:#eef2e5;color:#34432d;
  box-shadow:0 4px 18px #34432d24;text-decoration:none;
  font-size:.82rem;font-weight:850;line-height:1.4;
}
.floating-top:hover{background:#dde7cf;border-color:#73825f}
.floating-top span[aria-hidden]{font-size:1.15rem;line-height:1}
.floating-top[hidden]{display:none}
@media(max-width:520px){
  .floating-top{right:calc(12px + env(safe-area-inset-right,0px));bottom:calc(12px + env(safe-area-inset-bottom,0px))}
}
@media print{.floating-top{display:none}}
.site-nav a[aria-current="location"]{
  color:var(--rust);
  text-decoration:underline;
  text-decoration-thickness:2px;
  text-underline-offset:7px;
}
.site-nav a:last-child[aria-current="location"]{
  background:#dde5ce;
  border-color:#879673;
}
.materials-illustration{margin:0;max-width:480px;width:100%}
.materials-illustration img{
  width:100%;height:auto;
  border-radius:44% 43% 35% 38% / 36% 38% 32% 30%;
}
.materials-illustration figcaption{
  color:#755b3a;font:italic 400 1.1rem/1.6 Fraunces,Georgia,serif;
  text-align:center;margin:19px 12px 0;
}
.jill-panel{grid-template-columns:1fr 1.1fr;gap:65px}
.jill-copy .text-link{min-height:44px;display:inline-flex;align-items:center}
.faq-toggle{
  display:block;width:fit-content;min-height:44px;margin-top:22px;
  border:1px solid #a6b097;border-radius:9px 12px 9px 12px;
  background:#f1f3e9;padding:9px 15px;
  font-size:.81rem;font-weight:800;cursor:pointer;
}
.faq-toggle:hover{background:#e4ead8}
.faq-toggle[hidden]{display:none}
.faq-group details[open]{background:#f0f2e8}
.faq-group details[open] summary{padding-bottom:14px}
.faq-answer-links .text-link{gap:8px}
.faq-answer-links .icon{width:17px;height:17px}
.faq-items summary::marker{font-size:0}
.back-to-top{
  display:inline-flex;align-items:center;gap:9px;min-height:44px;
  font-weight:800;text-underline-offset:4px;
}
.footer-bottom{align-items:center}
.privacy-document{max-width:none}
.document-heading{max-width:790px}
.privacy-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:65px;align-items:start;margin-top:38px}
.privacy-layout .document-nav{position:sticky;top:122px;margin:0;padding:20px 23px}
.privacy-layout .document-nav ul{grid-template-columns:1fr}
.privacy-layout .document-nav a{font-size:.84rem;line-height:1.5;padding-block:8px}
.privacy-reading{max-width:730px}
.privacy-reading .document-section:first-child{margin-top:0}
.privacy-reading .document-section{padding-top:0;margin-top:38px}
.privacy-reading h2{font-size:clamp(1.75rem,2.5vw,2.15rem)}
.privacy-reading p{font-size:1rem;line-height:1.9}
.privacy-reading .back-link{min-height:44px;display:inline-flex;align-items:center}
@media(min-width:800px) and (max-width:1050.98px){
  .jill-panel{gap:38px}
  .privacy-layout{grid-template-columns:220px minmax(0,1fr);gap:35px}
}
@media(max-width:799.98px){
  .jill-panel{grid-template-columns:1fr;gap:28px}
  .materials-illustration{margin-inline:auto}
  .materials-illustration figcaption{font-size:1rem}
  .faq-toggle{margin-top:15px}
  .privacy-layout{grid-template-columns:1fr;gap:32px;margin-top:28px}
  .privacy-layout .document-nav{position:static}
  .privacy-layout .document-nav ul{grid-template-columns:1fr 1fr}
  .footer-bottom{flex-wrap:wrap;gap:8px 24px}
}
@media(max-width:520px){
  .privacy-layout .document-nav ul{grid-template-columns:1fr}
  .materials-illustration figcaption{font-size:.95rem}
  .footer-bottom .back-to-top{width:100%}
}
@media(max-height:450px){.privacy-layout .document-nav{position:static}}
@media(forced-colors:active){
  .site-nav a[aria-current="location"]{text-decoration:underline}
  .faq-toggle{border:1px solid ButtonText}
}

/* A clearer welcome and one visual language across the whole site. */
.hero{padding-block:58px 50px;background:radial-gradient(ellipse at 85% 48%,#f3e6cc65,transparent 61%)}
.hero-grid{grid-template-columns:1.06fr 1fr;gap:48px}
.hero h1{font-size:clamp(3rem,4.9vw,4.25rem);line-height:1.1;letter-spacing:-.045em;max-width:570px}
.hero h1 em{font-size:.94em;color:#596b43;margin-top:7px}
.hero-copy>p:not(.eyebrow){font-size:1.03rem;line-height:1.85;max-width:490px}
.hero .eyebrow{letter-spacing:.13em;color:#78633f}
.hero-note{padding-top:19px;border-top:1px solid #d9d4bd;max-width:410px}
.hero-note a{min-height:36px}
.hero-art{max-width:520px}
.hero-art img{border-radius:48% 48% 38% 40% / 45% 43% 34% 36%}
.art-caption{font-size:1rem}
.season-notice{background:#eef0e4;border-color:#d4d9c4}
.season-notice-inner{padding-block:25px;align-items:center}
.season-notice h2{font-size:1.45rem}
.season-notice-action{flex-basis:235px}
.season-notice-action .text-link{display:inline-flex;min-height:44px;align-items:center;color:#435936}
.season-notice .overview-band{background:#f7f7ef;border-top:1px solid #d9ddce;padding-block:25px}
.overview-grid>div+div{padding-left:25px;border-left:1px solid #d9ddce}
.approach-section>.container{display:block}
.approach-heading{max-width:690px}
.approach-heading h2{max-width:650px}
.approach-heading>p:last-child{max-width:600px;margin-top:20px}
.approach-principles{grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;margin-top:38px}
.principle{display:block;border-top:1px solid #d7dccb;padding-top:24px}
.principle-art{width:66px;height:63px;margin:0 0 17px}
.principle h3{font-size:1.45rem;margin-bottom:10px}
.principle p{max-width:none;font-size:.95rem}
.section-heading{align-items:center;gap:70px}
.section-heading h2{font-size:clamp(2.25rem,3.5vw,3.05rem)}
.activity h3{line-height:1.35}
.jill-section{background:linear-gradient(100deg,#f7f2e7,#f2f2e7);border-bottom:1px solid #dfe0ce}
.jill-copy>p:not(.eyebrow){line-height:1.85}
.jill-copy .text-link{margin-top:23px}
.visit-section{background:#fffdf7}
.visit-step{border-color:#d4d7c5}
.bring-note{padding-top:17px;border-top:1px solid #d4d7c5}
.faq-group>h3{color:#4d603d;letter-spacing:.055em}
.faq-group details{border-radius:5px}
.faq-group details[open]{box-shadow:inset 3px 0 #a5b48d}
.faq-group details[open] .faq-answer-links{padding-bottom:19px}
.contact-panel{background:#eef1e5;border-color:#ccd5ba;box-shadow:0 10px 40px #43523208}
.contact-copy .contact-next{padding-top:20px;border-top:1px solid #c8d2b7}
.contact-flower{margin-top:22px}
.sb-form{background:#fffdf8;border:1px solid #d8ddca;border-radius:6px 22px 6px 22px;padding:25px}
.form-row{grid-template-columns:1fr}
.sb-form-bottom{align-items:flex-start}
.footer-about{max-width:350px}
.footer-about>p{font-size:.86rem;line-height:1.8;color:#526044;margin-top:17px;max-width:300px}
.footer-main{align-items:start}
.footer-links{max-width:560px;padding-top:6px}
.footer-bottom{margin-top:30px}
.breadcrumbs{display:flex;align-items:center;gap:11px;font-size:.84rem;color:#5a654e;margin-bottom:28px}
.breadcrumbs a{min-height:44px;display:inline-flex;align-items:center}
.privacy-document{padding-top:40px}
.document-heading{padding-bottom:28px;border-bottom:1px solid #d6dcc8}
.document-heading h1{font-size:clamp(2.6rem,4.6vw,4rem);line-height:1.15}
.document-heading .document-lead{max-width:650px;font-size:1.04rem;line-height:1.85}
.privacy-summary{margin-top:30px;padding:25px 28px;background:#eef1e5;border:1px solid #d2dbc2;border-radius:5px 24px 5px 24px}
.privacy-summary>h2{font:800 .8rem/1.5 Nunito,Arial,sans-serif;letter-spacing:.07em;text-transform:uppercase;margin:0 0 17px}
.privacy-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:27px}
.privacy-summary-grid a{display:block;color:inherit;text-decoration:none;min-height:44px}
.privacy-summary-grid strong{display:block;font-size:.95rem;text-decoration:underline;text-underline-offset:4px}
.privacy-summary-grid span{display:block;margin-top:8px;font-size:.87rem;line-height:1.75;color:#566348}
.privacy-summary-grid a:hover strong{color:var(--rust)}
.privacy-reading .document-section{padding-top:24px;border-top:1px solid #dce0d1}
.privacy-reading .document-section:first-child{padding-top:0;border:0}
.error-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:70px;text-align:left;max-width:none;align-items:center;padding-block:80px}
.error-copy>h1{font-size:clamp(2.75rem,4.6vw,4rem);line-height:1.12;margin-bottom:24px}
.error-copy>p:not(.eyebrow){font-size:1rem;line-height:1.85;color:var(--muted);max-width:490px;margin:0 0 29px}
.error-links{justify-content:flex-start;gap:8px 23px}
.error-art{max-width:440px;margin:auto}
.error-art img{width:100%;height:auto;border-radius:46% 44% 35% 39%}
.error-art p{font:italic 1.25rem/1.6 Fraunces,Georgia,serif;text-align:center;margin-top:20px;color:#776344}
@media(min-width:800px) and (max-width:1050.98px){
  .hero-grid{gap:30px}.hero h1{font-size:clamp(2.65rem,4.9vw,3.6rem)}
  .approach-principles{gap:26px}.contact-panel{grid-template-columns:.8fr 1.2fr;gap:26px;padding:35px}
  .sb-form{padding:22px}.privacy-summary-grid{gap:20px}.error-layout{gap:35px}
}
@media(min-width:1060px){.faq-title{position:sticky;top:125px;align-self:start}}
@media(max-width:799.98px){
  .hero{padding-block:36px}.hero-grid{grid-template-columns:1fr;gap:34px}
  .hero h1{font-size:clamp(2.65rem,7.6vw,4rem);max-width:600px}
  .hero h1 em{margin-top:5px}.hero-art{max-width:440px}
  .hero-note{max-width:none}.approach-principles{gap:27px}
  .season-notice-action{flex-basis:auto}
  .principle h3{font-size:1.25rem}.principle p{font-size:.89rem}
  .section-heading{gap:25px}.overview-grid>div+div{padding-left:0;border:0}
  .contact-panel{padding:29px;gap:27px}.sb-form{padding:24px}
  .contact-flower{display:none}.contact-copy .reservation-note{max-width:none}
  .privacy-summary-grid{grid-template-columns:1fr;gap:19px}
  .privacy-summary-grid a+a{border-top:1px solid #d2dbc2;padding-top:18px}
  .privacy-summary-grid span{margin-top:4px}.error-layout{grid-template-columns:1fr;gap:35px;padding-block:45px}
  .error-art{max-width:330px}.error-art p{font-size:1.1rem}
}
@media(max-width:599.98px){
  .hero h1{font-size:clamp(2.25rem,8.6vw,3.15rem);letter-spacing:-.035em}
  .hero-copy>p:not(.eyebrow){font-size:1rem}.hero-art{max-width:330px}
  .hero-note{justify-content:flex-start}.hero .eyebrow{font-size:.64rem;letter-spacing:.1em}
  .season-notice-inner{gap:12px}.season-notice-action{flex-basis:auto;width:auto}
  .approach-principles{grid-template-columns:1fr;gap:23px;margin-top:30px}
  .principle{display:grid;grid-template-columns:56px minmax(0,1fr);column-gap:17px;padding-top:21px}
  .principle-art{width:56px;height:56px;margin:0;grid-row:1/3}
  .principle h3{font-size:1.35rem;margin-top:2px}.principle p{font-size:.94rem;max-width:none}
  .contact-panel{padding:25px 18px;border-radius:5px 24px 5px 24px}
  .sb-form{padding:23px 0 0;border:0;border-top:1px solid #c8d2b7;background:transparent;border-radius:0}
  .sb-form-bottom{flex-direction:column;gap:15px}.sb-form-bottom .button{width:100%}
  .footer-links{padding-top:0}.footer-about>p{font-size:.87rem}
  .privacy-summary{padding:22px}.privacy-document{padding-top:22px}
  .breadcrumbs{margin-bottom:20px}.document-heading{padding-bottom:20px}
  .error-copy>h1{font-size:2.75rem}.error-copy>.button{width:100%}
}
@media(max-height:650px){.faq-title{position:static}}

/* Keep the second activity discoverable close to the homepage introduction. */
.hero-grid .other-program{grid-column:1/-1;display:flex;align-items:center;flex-wrap:wrap;gap:6px 18px;margin:0;padding:18px 0 0;border-top:1px solid var(--line);font-size:.9rem;color:var(--muted)}
.other-program>span{font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.other-program>a{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:.9rem;font-weight:800;color:var(--ink)}
.hero-copy .other-program{margin-top:20px;padding-top:14px}
@media(max-width:799.98px){.hero-grid .other-program{gap:0 14px;padding-top:14px}}
.needle-felting-feature .jill-art{padding:0;min-height:0;max-width:400px;background:none;border-radius:24px;overflow:hidden}.needle-felting-feature .jill-art:before,.needle-felting-feature .jill-art:after{display:none}.needle-felting-feature .jill-art img{width:100%;aspect-ratio:4/3;object-fit:cover}
/* Six navigation links need the menu at tablet widths; other layouts stay put. */
@media (800px <= width < 1051px){
  .header-inner{min-height:80px;flex-wrap:wrap;gap:0}
  .brand{font-size:1.75rem}.brand .icon{width:36px;height:36px}
  .js .menu-toggle{display:block}
  .site-nav{width:100%;padding:12px 0 22px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0}
  .site-nav a{font-size:.9rem;padding:12px 8px}
  .site-nav a:last-child{border:0;background:transparent;padding:12px 8px}
  .js .menu-toggle[aria-expanded=false]+.site-nav{display:none}
}

/* Keep supporting links, adult inquiry guidance, and recovery routes as readable
   as the main program copy across the homepage and supporting pages. */
.menu-toggle{min-height:44px}
.footer-links{
  flex-wrap:wrap;
  justify-content:flex-end;
  column-gap:22px;
  row-gap:4px;
  max-width:620px;
  font-size:.875rem;
  line-height:1.55;
}
.footer-links a,.footer-links button{
  display:inline-flex;
  align-items:center;
  min-height:44px;
}
.footer-links a[aria-current=page]{color:var(--rust);text-decoration-thickness:2px}
.footer-bottom{font-size:.8rem;line-height:1.6}
.breadcrumbs{flex-wrap:wrap;font-size:.875rem;line-height:1.5}
.privacy-reading{min-width:0}
.privacy-reading .document-section p{overflow-wrap:anywhere}
.privacy-layout .document-nav a{font-size:.875rem;text-underline-offset:3px}
.privacy-summary-grid a{
  padding:14px;
  border:1px solid #d5dec6;
  border-radius:4px 12px 4px 12px;
  background:#f8faf2;
}
.privacy-summary-grid a:hover{background:#e6eddc}
.privacy-summary-grid strong{line-height:1.5}
.field label{font-size:.9rem}
.field-help,.form-help,.form-requirements,.privacy-before-message,
.contact-copy .reservation-note,.sb-form-bottom a{
  font-size:.875rem;
  line-height:1.6;
}
.sb-form-status,.sb-preview-note{line-height:1.6;overflow-wrap:anywhere}
.sb-form-bottom a{display:inline-flex;align-items:center;min-height:44px}

/* Preserve the whole portrait photograph in the homepage's group invitation. */
.needle-felting-feature .jill-panel{
  grid-template-columns:minmax(220px,.75fr) minmax(0,1.25fr);
  align-items:center;
  gap:28px;
}
.needle-felting-feature .jill-art{
  width:calc(100% - 40px);
  max-width:285px;
  margin:28px auto;
  align-self:center;
  justify-self:center;
  border-radius:18px;
}
.needle-felting-feature .jill-art img{aspect-ratio:3/4;object-fit:contain;height:auto}
.needle-felting-feature .jill-copy{min-width:0;padding:38px 38px 38px 0}
.needle-felting-feature .jill-copy .button{margin-top:24px}

/* The illustrated 404 already has its own vertical padding; avoid adding the
   older centered error page's outer margins as a second empty band. */
.error-layout{margin:0 auto;padding-block:64px}
.error-links a{line-height:1.5}

@media(max-width:799.98px){
  .footer-links{justify-content:flex-start;max-width:none;column-gap:22px;row-gap:4px}
  .privacy-summary-grid a+a{padding-top:14px}
  .needle-felting-feature .jill-panel{grid-template-columns:1fr;gap:0}
  .needle-felting-feature .jill-art{margin-block:24px 0;max-width:260px}
  .needle-felting-feature .jill-copy{padding:28px 30px 32px}
  .error-layout{padding-block:42px}
}
@media(max-width:599.98px){
  .privacy-summary{padding:18px}
  .privacy-summary-grid{gap:14px}
  .privacy-summary-grid span{font-size:.875rem;line-height:1.65}
  .needle-felting-feature .jill-art{max-width:240px;margin-top:20px}
  .needle-felting-feature .jill-copy{padding:25px 24px 28px}
  .needle-felting-feature .jill-copy h2{font-size:2rem;line-height:1.2}
  .needle-felting-feature .jill-copy .button{width:100%;margin-top:20px}
  .error-layout{padding-block:36px;gap:28px}
  .error-copy>h1{font-size:clamp(2.2rem,9vw,2.75rem)}
  .error-links{gap:4px 22px}
  .footer-bottom{row-gap:8px}
}
