/* A shared visual language for the paper-and-watercolor backgrounds. */
:root {
  --ink: #39412f;
  --muted: #656454;
  --rust: #8c4a35;
  --paper: #fffdf6;
  --sage: #e8edde;
  --line: #d9d4c1;
  --sb-forest: #4b603a;
  --sb-forest-dark: #35472a;
  --sb-border: #d5d0ba;
  --sb-panel: #fffcf3;
  --sb-soft-shadow: 0 9px 28px #5b4e3010;
  --sb-corner: 12px 26px 12px 26px;
}

h1, h2, h3 { text-wrap: balance; }
.eyebrow { color: var(--rust); letter-spacing: .12em; }
.brand { color: #3e4b32; }
.brand .icon, .brand>svg { color: #9a762e; }
.brand small { letter-spacing: .17em; }
.hero h1 em { color: #536842; }
.hero.container h1 em { color: var(--rust); }
.hero .eyebrow { font-size: .72rem; }
.hero-copy>p:not(.eyebrow) { line-height: 1.85; }

/* The same quiet, legible controls on every page. */
.button {
  min-height: 50px;
  border: 1px solid #405532;
  border-radius: var(--sb-corner);
  background: var(--sb-forest);
  color: var(--paper);
  padding: 14px 23px;
  font-size: .9rem;
  font-weight: 800;
  box-shadow: inset 0 1px #ffffff21, 0 4px 10px #3d4d2920;
  transition: background-color .18s, box-shadow .18s;
}
.button:hover:not(:disabled) {
  background: var(--sb-forest-dark);
  border-color: var(--sb-forest-dark);
  box-shadow: inset 0 1px #ffffff1a, 0 5px 14px #3d4d2929;
  transform: none;
}
.button:disabled { opacity: .62; box-shadow: none; }
.text-link { color: var(--rust); font-weight: 800; text-decoration-thickness: 1px; }
.text-link:hover { color: #633721; text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid var(--sb-forest); outline-offset: 4px; }
.button:focus-visible { outline-offset: 5px; }
.site-nav { gap: clamp(8px, 1.3vw, 22px); }
.site-nav a {
  min-height: 44px;
  padding: 9px 8px;
  border-radius: 10px 16px 10px 16px;
  font-size: .82rem;
  color: #465239;
  text-underline-offset: 5px;
}
.site-nav a:hover, .site-nav a[aria-current=location] { background: #e6eadb; color: #34472a; }
.site-nav a:last-child, .site-nav .nav-inquiry {
  padding: 10px 18px;
  border: 1px solid #bac4a8;
  border-radius: var(--sb-corner);
  background: #e7ecdc;
  color: #3d5130;
}
.site-nav a:last-child:hover, .site-nav .nav-inquiry:hover { background: #dbe4cc; border-color: #9fab8c; }
.site-nav:has(.nav-inquiry) { flex-wrap: wrap; }
.menu-toggle {
  min-height: 44px;
  border: 1px solid #b1b79e;
  border-radius: 11px 19px 11px 19px;
  background: #fffaf0;
  color: #435436;
}
.menu-toggle[aria-expanded=true] { background: #e4ead7; border-color: #91a17d; }

/* Open editorial sections, with small watercolor accents and gentle rules. */
.hero-note, .hero-copy .other-program { border-color: var(--sb-border); }
.other-program>span, .overview-band>.container>.eyebrow { color: #65724f; }
.season-notice h2 { color: #435236; }
.season-notice-action p { font-size: .8rem; color: #626850; }
.overview-grid dt { color: #435236; }
.overview-grid dt .icon { color: #7b865f; }
.principle { border-color: #c9cdb7; }
.principle-art {
  border: 1px solid #d6c69f73;
  background: radial-gradient(ellipse at 35% 30%, #f1d69b9c, #f5e8c970 70%);
  box-shadow: inset 0 1px #ffffff8c;
}
.principle:nth-child(2) .principle-art { border-color: #bdc7a880; background: radial-gradient(ellipse at 35% 30%, #cfddbaad, #e6eddb73 70%); }
.principle:nth-child(3) .principle-art { border-color: #dbc1ab80; background: radial-gradient(ellipse at 35% 30%, #ecc4aaa6, #f4e3d473 70%); }
.activity-icon { border: 1px solid #c6b78f52; box-shadow: inset 0 1px #ffffff80; }
.activity-number>span { border: 1px solid #d8d8c4; border-radius: 99px; background: #f5f2e5; }
.activity::before { border-color: #bac4a7; }
.activity h3 { color: #435236; }
.materials-illustration {
  padding: 14px 14px 19px;
  border: 1px solid var(--sb-border);
  border-radius: 18px 46px 18px 46px;
  background: var(--sb-panel);
  box-shadow: var(--sb-soft-shadow);
}
.materials-illustration img { border-radius: 10px 34px 10px 34px; }
.materials-illustration figcaption { margin-top: 14px; color: #76613e; font-size: 1rem; }
.needle-felting-feature .jill-panel {
  background: var(--sb-panel);
  border: 1px solid var(--sb-border);
  border-radius: 20px 42px 20px 42px;
  box-shadow: var(--sb-soft-shadow);
}
.needle-felting-feature .jill-art {
  padding: 7px;
  border: 1px solid var(--sb-border);
  border-radius: 14px 25px 14px 25px;
  background: #faf5e8;
}
.needle-felting-feature .jill-art img { border-radius: 8px 19px 8px 19px; }
.visit-step { border-color: #c6cdb5; }
.step-number { color: #8a9a71; }
.bring-note { border-color: #cbd0b9; }

/* Both sets of questions use the same paper disclosure rows. */
.faq-group>h3 { color: #586c45; border-color: #bdc7aa; }
.faq-group details, .group-questions-grid details {
  margin-top: 12px;
  padding: 0;
  border: 1px solid var(--sb-border);
  border-radius: 12px 20px 12px 20px;
  background: var(--sb-panel);
  box-shadow: 0 2px 8px #62533405;
}
.group-questions-grid { gap: 0; }
.faq-group details[open], .group-questions-grid details[open] {
  border-color: #aab696;
  background: #f2f4e8;
  box-shadow: inset 3px 0 #97a77d;
}
.faq-group details>summary, .group-questions-grid details>summary {
  position: relative;
  display: block;
  min-height: 62px;
  padding: 18px 62px 18px 22px;
  border: 0;
  list-style: none;
  color: #414d35;
  font: 800 1rem/1.5 Nunito, Arial, sans-serif;
}
.faq-group summary::-webkit-details-marker, .group-questions-grid summary::-webkit-details-marker { display: none; }
.faq-group details>summary::after, .group-questions-grid details>summary::after {
  content: '+';
  position: absolute;
  right: 17px;
  top: 16px;
  display: grid;
  place-items: center;
  width: 29px;
  height: 29px;
  border: 1px solid #d0d7bf;
  border-radius: 50%;
  background: #e9eddf;
  color: #52663e;
  font: 500 1.25rem/1 Nunito, Arial, sans-serif;
  transform: none;
}
.faq-group details[open]>summary::after, .group-questions-grid details[open]>summary::after { content: '−'; }
.faq-group details[open]>summary { padding-bottom: 18px; }
.faq-group details>p, .group-questions-grid details>p { margin: 0; padding: 0 22px 19px; font-size: .95rem; line-height: 1.8; }
.faq-group .faq-answer-links, .faq-group details[open] .faq-answer-links { padding: 0 22px 17px; }
.faq-toggle, .question-starter-buttons button, .inquiry-starter {
  border: 1px solid #b9c2a7;
  border-radius: 10px 17px 10px 17px;
  background: #edf0e2;
  color: #425537;
  box-shadow: inset 0 1px #ffffff80;
}
.faq-toggle:hover, .question-starter-buttons button:hover, .inquiry-starter:hover { background: #dfe7d1; }

/* Inquiry forms sit on a consistent, clearly edged sheet of warm paper. */
.contact-panel { background: #e9eddf; border-color: #c6cfb5; border-radius: 18px 38px 18px 38px; box-shadow: var(--sb-soft-shadow); }
.contact-copy .contact-next { border-color: #c2ccb0; }
.sb-form {
  padding: 30px;
  border: 1px solid #d0cbb5;
  border-radius: 14px 28px 14px 28px;
  background: var(--sb-panel);
  box-shadow: 0 4px 16px #5b4e3008;
}
.field label { color: #414d35; font-size: .9rem; font-weight: 800; }
.field input, .field textarea {
  width: 100%;
  min-width: 0;
  min-height: 50px;
  padding: 12px 14px;
  border: 1px solid #a8ad95;
  border-radius: 9px 15px 9px 15px;
  background: #fffef9;
  color: var(--ink);
  font-size: 1rem;
  line-height: 1.5;
  box-shadow: inset 0 2px 4px #5d553005;
}
.field textarea { min-height: 155px; }
.field input:focus, .field textarea:focus { border-color: #6f8655; outline: 2px solid #7c9163; outline-offset: 2px; }
.field-help, .form-help, .form-requirements, .sb-preview-note { font-size: .875rem; line-height: 1.65; }
.privacy-before-message { padding: 13px 15px; border: 1px solid #d8dcc8; border-radius: 9px 16px 9px 16px; background: #f0f2e7; }
.question-starters { background: #f4f3e7; border-color: #d5d3bd; border-radius: var(--sb-corner); }
.question-starters legend { color: #52613e; }
.sb-form-status { border-radius: var(--sb-corner); }
.sb-form-bottom>a { color: #5f6a50; }

/* Photographs are mounted on the same paper, with the original crops retained. */
.hero-photo { border-color: var(--paper); box-shadow: 0 12px 35px #5b4e301a; }
.hero-detail { border-color: #d5cbb3; border-radius: 8px 15px 8px 15px; background: var(--sb-panel); }
.gallery>figure { margin: 0; padding: 12px 12px 16px; border: 1px solid var(--sb-border); border-radius: 14px 28px 14px 28px; background: var(--sb-panel); box-shadow: var(--sb-soft-shadow); min-width: 0; }
.gallery-button img { border-radius: 8px 19px 8px 19px; }
.gallery figcaption { padding-inline: 3px; color: #465239; font-size: .9rem; }
.gallery figcaption span { display: grid; place-items: center; flex: none; width: 28px; height: 28px; border-radius: 50%; background: #e9eddf; color: #5d7245; font-size: 1rem; }
.photo-dialog { border: 1px solid #c9c1a9; border-radius: 16px 30px 16px 30px; background: var(--sb-panel); box-shadow: 0 20px 80px #1c261f4d; }
.photo-dialog::backdrop { background: #253020de; }
.photo-toolbar { padding-bottom: 13px; border-bottom: 1px solid var(--sb-border); }
.photo-navigation button, .dialog-close { border-color: #bcc6a9; border-radius: 10px 17px 10px 17px; background: #edf0e2; color: #425537; }
.photo-navigation button:hover, .dialog-close:hover { background: #dfe7d1; }
.dialog-close { gap: 8px; }
.photo-dialog .viewer-image { border-radius: 7px 15px 7px 15px; }

.document-nav { border: 1px solid #cbd3ba; border-radius: 14px 26px 14px 26px; background: #eaf0df; }
.document-nav a { color: #435637; }
.privacy-summary { background: #e9eddf; border-color: #c6cfb5; border-radius: 16px 32px 16px 32px; }
.privacy-summary-grid a { border-color: var(--sb-border); border-radius: var(--sb-corner); background: var(--sb-panel); }
.privacy-summary-grid a:hover { background: #f2f3e6; }
.privacy-summary-grid strong { color: #495b38; }
.privacy-reading .document-section { border-color: #d0d3bd; }
.error-art img { border: 10px solid var(--sb-panel); border-radius: 24px 54px 24px 54px; box-shadow: var(--sb-soft-shadow); }
.site-footer { padding-block: 43px 28px; color: #56634a; }
.footer-links a, .footer-links button { text-underline-offset: 5px; }
.footer-links a:hover { color: #374d2b; text-decoration-thickness: 2px; }
.footer-bottom { border-color: #c8cfb5; color: #5e6851; }
.floating-top { border-color: #aebd99; border-radius: 11px 20px 11px 20px; background: #e9eddf; color: #425537; box-shadow: 0 4px 15px #34432d17; }
.closing h2 { color: #4c603c; }

@media (max-width: 1050.98px) {
  .site-nav { gap: 4px 8px; }
  .site-nav a { font-size: .875rem; }
  .site-nav:has(.nav-inquiry) a { font-size: .82rem; }
  .contact-panel { gap: 28px; }
  .sb-form { padding: 24px; }
}
@media (max-width: 799.98px) {
  .site-nav a:last-child { border: 1px solid #c0cbb0; padding: 10px 12px; }
  .materials-illustration { max-width: 430px; }
  .gallery>figure { padding: 9px 9px 13px; }
}
@media (max-width: 599.98px) {
  .site-nav:has(.nav-inquiry) { justify-content: flex-start; gap: 4px 14px; padding-bottom: 16px; }
  .site-nav .nav-inquiry { flex-basis: 100%; justify-content: center; }
  .site-nav a { padding-inline: 8px; }
  .hero .eyebrow { font-size: .7rem; }
  .hero.container h1 { font-size: clamp(2.55rem, 9vw, 3.5rem); }
  .materials-illustration { padding: 10px 10px 16px; border-radius: 14px 32px 14px 32px; }
  .materials-illustration img { border-radius: 8px 23px 8px 23px; }
  .materials-illustration figcaption { font-size: .9rem; }
  .needle-felting-feature .jill-panel { border-radius: 16px 30px 16px 30px; }
  .contact-panel { padding: 24px 16px; border-radius: 14px 30px 14px 30px; }
  .sb-form { padding: 23px 14px; border: 1px solid #d0cbb5; border-radius: 12px 22px 12px 22px; background: var(--sb-panel); }
  .privacy-before-message { padding: 11px; }
  .faq-group details>summary, .group-questions-grid details>summary { padding-left: 16px; padding-right: 53px; font-size: .95rem; }
  .faq-group details>summary::after, .group-questions-grid details>summary::after { right: 13px; width: 27px; height: 27px; }
  .faq-group details>p, .group-questions-grid details>p { padding-inline: 16px; }
  .faq-group .faq-answer-links, .faq-group details[open] .faq-answer-links { padding-inline: 16px; }
  .gallery { gap: 20px 12px; }
  .gallery>figure { padding: 7px 7px 11px; border-radius: 10px 20px 10px 20px; }
  .gallery figcaption { font-size: .82rem; gap: 5px; }
  .gallery figcaption span { width: 23px; height: 23px; font-size: .85rem; }
  .photo-toolbar { padding-bottom: 10px; }
  .privacy-summary { padding: 18px; }
}
@media (prefers-reduced-motion: reduce) {
  .button { transition: none; }
}
@media (forced-colors: active) {
  .button, .sb-form, .field input, .field textarea,
  .faq-group details, .group-questions-grid details, .gallery>figure,
  .photo-dialog, .question-starter-buttons button { border-color: ButtonText; box-shadow: none; }
  .button:focus-visible { outline-color: Highlight; }
}
@media print {
  .button, .materials-illustration, .sb-form, .needle-felting-feature .jill-panel,
  .gallery>figure, .contact-panel, .photo-dialog { box-shadow: none; }
}
