/* Public identity — warm paper, forest green, editorial photography. */
.public-page { --ink: #203e35; --ink-dark: #142d25; --muted: #626e64; --line: #d9ddd1; --paper: #f8f7f2; background: var(--paper); }
.public-page .wrap { width: min(1200px, calc(100% - 96px)); }
.public-page h1, .public-page h2 { text-wrap: balance; font-weight: 400; }
.public-page p { text-wrap: pretty; }
.public-page h2 { font-size: clamp(36px, 3.8vw, 50px); line-height: 1.12; }
.public-page h2 em { color: #75846b; font-weight: 400; }
.public-symbols { position: absolute; width: 0; height: 0; overflow: hidden; pointer-events: none; }
.p-icon { width: 22px; height: 22px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.header-shell { position: sticky; top: 0; z-index: 30; border-bottom: 1px solid #203e351c; background: #f8f7f2f5; backdrop-filter: blur(16px); }
.public-page .site-header { height: 100px; border: 0; }
.public-page .brand { gap: 9px; }
.public-page .brand > span { font-size: 29px; }
.public-page .brand svg { width: 34px; height: 41px; }
.public-nav { gap: 29px; }
.public-nav > a:not(.btn) { font-size: 13px; padding-block: 10px; }
.public-nav > a[aria-current] { border-color: var(--ink); }
.public-page .btn { border-radius: 4px; min-height: 54px; padding: 15px 23px; gap: 22px; font-size: 13px; font-weight: 500; }
.public-page .btn-small { min-height: 44px; padding: 11px 18px; font-size: 12px; }
.public-page .btn:hover { transform: none; }
.public-page .btn .p-icon { width: 18px; height: 18px; }
.public-page .text-link { gap: 15px; font-size: 12px; font-weight: 500; }
.public-page .text-link .p-icon { width: 19px; height: 19px; }
.public-page .eyebrow { font-size: 10px; font-weight: 500; letter-spacing: 1.5px; gap: 12px; }
.eyebrow-line { width: 28px; height: 1px; background: #859276; flex: none; }
.section-index { color: #8a977b; font-size: 10px; letter-spacing: 0; margin-right: 3px; }
.public-page .hero { grid-template-columns: 1.1fr 1fr; gap: 56px; min-height: 0; padding-block: 52px 48px; align-items: center; }
.hero-copy { padding-bottom: 32px; }
.public-page .hero .eyebrow { font-size: 10px; margin-bottom: 26px; letter-spacing: 1.3px; }
.public-page .hero h1 { font-size: clamp(52px, 6.1vw, 82px); line-height: 1.07; letter-spacing: -.055em; margin: 0 0 25px; max-width: 100%; }
.public-page .hero h1 em { font-weight: 400; color: #75846b; }
.public-page .hero-description { font-size: 15px; max-width: 425px; line-height: 1.9; margin-bottom: 30px; }
.public-page .hero-actions { gap: 23px; flex-wrap: wrap; }
.hero-principles { display: flex; align-items: center; gap: 15px; margin-top: 43px; }
.hero-principles > .p-icon { width: 34px; height: 34px; color: #829171; stroke-width: 1.1; }
.hero-principles p { font-size: 11px; line-height: 1.75; color: var(--muted); margin: 0; }
.hero-principles strong { font-weight: 400; }
.hero-visual { margin: 0; position: relative; min-width: 0; }
.hero-image-frame { overflow: hidden; border-radius: 110px 5px 5px 5px; background: #e5dfd2; }
.hero-image-frame img { width: 100%; height: 510px; object-fit: cover; object-position: center 59%; }
.image-note { position: absolute; bottom: 64px; left: -28px; display: flex; align-items: center; gap: 20px; padding: 20px 29px; background: #f8f7f2f5; border: 1px solid #ffffffc9; box-shadow: 0 8px 25px #203e3508; }
.image-note .p-icon { width: 32px; height: 32px; color: #a9885f; stroke-width: 1.15; }
.image-note p { font-family: var(--serif); font-size: 21px; line-height: 1.35; letter-spacing: -.6px; margin: 0; }
.image-note em { color: #78856d; }
.hero-visual figcaption { display: flex; justify-content: space-between; gap: 16px; padding-top: 17px; color: #65725f; font-size: 9px; letter-spacing: 1.6px; }
.public-page .belief-band { background: #edefe5; border-color: #dce1d3; }
.public-page .belief-inner { justify-content: space-between; gap: 48px; padding-block: 33px; text-align: left; }
.belief-inner > p { font-size: 25px; line-height: 1.4; margin: 0; }
.belief-inner > p em { color: #78866d; }
.belief-inner > div { display: flex; align-items: center; gap: 37px; }
.belief-inner > div span { font-family: var(--sans); font-size: 12px; letter-spacing: 0; color: #5c6d59; position: relative; }
.belief-inner > div span + span::before { content: ''; position: absolute; left: -19px; top: 7px; width: 3px; height: 3px; border-radius: 50%; background: #97a487; }
.public-page .section-space { padding-block: 100px; }
.public-page .section-intro { grid-template-columns: 1.15fr 1fr; gap: 80px; margin-bottom: 52px; }
.public-page .section-intro .eyebrow { margin-bottom: 22px; }
.public-page .section-intro > p { font-size: 14px; line-height: 1.9; margin-bottom: 4px; max-width: 380px; }
.public-page .approach-grid { gap: 35px; }
.public-page .approach-card { padding: 27px 0 0; min-height: 0; border: 0; border-top: 1px solid #bcc8ae; border-radius: 0; background: transparent; }
.public-page .approach-card:hover { transform: none; background: transparent; }
.approach-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 28px; }
.public-page .approach-icon { position: static; width: 34px; height: 34px; color: #7f9270; stroke-width: 1.1; margin: 0; }
.public-page .approach-card:nth-child(3n + 2) .approach-icon { color: #aa8965; }
.public-page .approach-card:nth-child(3n + 3) .approach-icon { color: #947665; }
.public-page .approach-number { position: static; color: #7c8971; font-size: 10px; font-weight: 400; }
.public-page .approach-card h3 { font-family: var(--serif); font-weight: 400; font-size: 25px; margin: 0 0 14px; }
.public-page .approach-card p { font-size: 14px; line-height: 1.85; max-width: 335px; }
.public-page .about-section { padding-block: 75px; background: #ebeee4; }
.public-page .about-grid { grid-template-columns: .85fr 1fr; gap: 110px; }
.about-editorial { padding: 32px; background: #f5f5ed; border: 1px solid #d1d9c5; position: relative; text-align: center; }
.about-kicker { display: block; font-size: 8px; letter-spacing: 2.2px; color: #75856b; }
.about-botanical { width: 215px; height: 215px; display: block; margin: 15px auto 10px; color: #7d9268; }
.about-editorial > p { font-family: var(--serif); font-size: 41px; line-height: 1.08; letter-spacing: -1.6px; margin-bottom: 25px; }
.about-editorial > p em { color: #7b8d6d; }
.about-seal { display: block; padding-top: 20px; border-top: 1px solid #d8dece; font-size: 8px; letter-spacing: 2px; color: #7b876f; }
.public-page .about-copy { padding: 0; }
.public-page .about-copy .eyebrow { margin-bottom: 22px; }
.public-page .about-copy h2 { margin-bottom: 26px; }
.public-page .body-copy { font-size: 14px; line-height: 1.95; }
.public-page .body-copy p { margin-bottom: 18px; }
.public-page .about-signature { margin-top: 25px; padding-top: 22px; gap: 22px; }
.public-page .about-signature span { font-size: 33px; }
.public-page .about-signature small { font-size: 10px; padding-left: 22px; line-height: 1.7; }
.about-copy > .text-link { margin-top: 19px; }
.public-page .process-section { padding-block: 90px; }
.process-layout { display: grid; grid-template-columns: 1fr 1.1fr; gap: 85px; padding: 58px; background: #203e35; color: #f8f7ef; border-radius: 5px; }
.process-intro .eyebrow { color: #bdcbb1; margin-bottom: 26px; }
.process-intro .section-index { color: #a7b897; }
.public-page .process-intro h2 { font-size: 43px; margin-bottom: 22px; }
.public-page .process-intro h2 em { color: #bdc9a6; }
.process-intro > p:not(.eyebrow) { font-size: 13px; line-height: 1.9; color: #cbd5c6; max-width: 330px; }
.process-intro .text-link { margin-top: 20px; border-bottom: 1px solid #809278; padding-bottom: 8px; }
.public-page .process-list { display: flex; flex-direction: column; gap: 0; margin: 0; }
.public-page .process-list > li { display: flex; gap: 22px; padding: 23px 0; border-top: 1px solid #ffffff29; }
.public-page .process-list > li:first-child { padding-top: 3px; border-top: 0; }
.public-page .process-list > li:last-child { padding-bottom: 0; }
.public-page .process-list > li > span { width: auto; height: auto; display: block; padding-top: 4px; background: transparent; color: #b4c4a2; border-radius: 0; font-size: 10px; }
.public-page .process-list h3 { font-family: var(--serif); font-size: 23px; font-weight: 400; margin: 0 0 10px; }
.public-page .process-list p { max-width: none; color: #cbd5c6; font-size: 13px; line-height: 1.85; margin: 0; }
.public-page .training-section { padding-top: 0; }
.training-list > article > .p-icon { width: 32px; height: 32px; color: #7e936e; margin-right: 7px; }
.faq-section { display: grid; grid-template-columns: 1fr 1.25fr; gap: 110px; padding-block: 0 95px; }
.faq-intro .eyebrow { margin-bottom: 22px; }
.faq-intro h2 { margin-bottom: 25px; }
.faq-intro > p:last-child { font-size: 14px; color: var(--muted); }
.faq-list { border-top: 1px solid #cdd5c3; }
.faq-list details { border-bottom: 1px solid #cdd5c3; }
.faq-list summary { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 25px; min-height: 78px; padding-block: 24px; font-size: 14px; font-weight: 500; cursor: pointer; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary > span { width: 22px; height: 22px; flex: none; position: relative; }
.faq-list summary > span::before, .faq-list summary > span::after { content: ''; position: absolute; width: 12px; height: 1px; left: 5px; top: 10px; background: #677d5c; }
.faq-list summary > span::after { transform: rotate(90deg); transition: transform .2s; }
.faq-list details[open] summary > span::after { transform: rotate(0); }
.faq-list details[open] summary { color: #61764f; }
.faq-list summary:focus-visible { outline: 3px solid #af7b43; outline-offset: 4px; }
.faq-list details > p { font-size: 13px; line-height: 1.9; color: var(--muted); padding-right: 40px; margin-bottom: 24px; }
.public-page .contact-section { background: #e9ede1; padding-block: 82px; border-top: 1px solid #d9dfcc; border-bottom: 1px solid #d9dfcc; }
.contact-layout { display: grid; grid-template-columns: 1.1fr 1fr; gap: 100px; align-items: start; }
.contact-copy .eyebrow { margin-bottom: 24px; }
.contact-copy h2 { margin-bottom: 24px; }
.contact-copy > p:not(.eyebrow) { font-size: 14px; color: var(--muted); line-height: 1.9; max-width: 370px; margin-bottom: 27px; }
.contact-location { display: flex; align-items: center; gap: 9px; font-size: 11px; color: #586c51; }
.contact-location > span { width: 5px; height: 5px; flex: none; background: #7d946b; border-radius: 50%; }
.contact-channels { min-width: 0; }
.contact-email { display: block; padding-bottom: 25px; border-bottom: 1px solid #bac8ac; }
.channel-label { display: flex; align-items: center; gap: 10px; font-size: 9px; letter-spacing: 1.2px; font-weight: 500; color: #526749; }
.channel-label .p-icon { width: 18px; height: 18px; }
.channel-address { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-family: var(--serif); font-size: clamp(21px, 2.3vw, 30px); letter-spacing: -.7px; margin-top: 18px; overflow-wrap: anywhere; }
.channel-address .p-icon { width: 25px; height: 25px; transition: transform .2s; }
.contact-email:hover .channel-address .p-icon { transform: translate(3px, -3px); }
.channel-hint { display: block; font-size: 11px; color: #64745a; margin-top: 8px; }
.social-channels { margin-top: 25px; }
.social-channels > .channel-label { margin-bottom: 11px; }
.social-link { display: flex; align-items: center; gap: 14px; padding-block: 12px; font-size: 14px; }
.social-link > .p-icon:first-child { width: 19px; height: 19px; color: #6a805c; }
.social-link > .p-icon:last-child { width: 17px; height: 17px; margin-left: auto; }
.social-link > span { overflow-wrap: anywhere; min-width: 0; }
.social-link:hover > span { text-decoration: underline; text-underline-offset: 5px; }
.contact-extra { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding-block: 17px; border-bottom: 1px solid #c9d2bd; font-size: 14px; }
.contact-privacy { font-size: 10px; line-height: 1.75; color: #63725b; margin: 22px 0 0; max-width: 390px; }
.public-page .site-footer { border: 0; padding-block: 43px 32px; align-items: center; }
.public-page .footer-brand { font-size: 25px; }
.public-page .site-footer p { display: block; font-size: 10px; margin-top: 6px; }
.public-page .site-footer nav { font-size: 11px; gap: 28px; flex-wrap: wrap; }
.footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 22px; border-top: 1px solid #dce1d3; padding-block: 22px 30px; font-size: 9px; color: #66765d; }
.footer-bottom a { padding-block: 5px; }
.footer-bottom a span { margin-left: 12px; }
.menu-toggle[aria-expanded='true'] span:first-child { transform: translateY(4px) rotate(45deg); }
.menu-toggle[aria-expanded='true'] span:last-child { transform: translateY(-4px) rotate(-45deg); }
.menu-toggle span { transition: transform .2s; }
@media (min-width: 1450px) {
  .public-page .hero { padding-block: 65px 55px; }
  .hero-image-frame img { height: 550px; }
}
@media (max-width: 1100px) {
  .public-page .wrap { width: calc(100% - 64px); }
  .public-page .hero { gap: 36px; }
  .public-page .hero h1 { font-size: 63px; }
  .public-page .hero .eyebrow { font-size: 9px; letter-spacing: .8px; gap: 8px; }
  .public-page .hero-actions { gap: 12px; }
  .public-page .hero .btn { padding-inline: 17px; font-size: 12px; }
  .hero-image-frame img { height: 490px; }
  .image-note { left: -18px; padding: 17px 22px; }
  .image-note p { font-size: 20px; }
  .public-nav { gap: 19px; }
  .public-nav > a:not(.btn) { font-size: 12px; }
  .public-page .belief-inner { gap: 32px; }
  .belief-inner > p { font-size: 22px; }
  .belief-inner > div { gap: 23px; }
  .belief-inner > div span { font-size: 11px; }
  .belief-inner > div span + span::before { left: -12px; }
  .public-page .section-intro { gap: 50px; }
  .public-page .about-grid { gap: 65px; }
  .process-layout { padding: 44px; gap: 50px; }
  .public-page .process-intro h2 { font-size: 38px; }
  .faq-section { gap: 70px; }
  .contact-layout { gap: 60px; }
}
@media (max-width: 900px) {
  .public-page .site-header { height: 84px; }
  .menu-toggle { display: block; }
  .public-nav { display: none; position: absolute; top: 74px; left: 32px; right: 32px; flex-direction: column; align-items: stretch; gap: 4px; padding: 18px; background: var(--paper); border: 1px solid var(--line); border-radius: 6px; box-shadow: 0 16px 32px #203e3512; z-index: 40; }
  .public-nav.is-open { display: flex; }
  .public-nav > a:not(.btn) { font-size: 14px; padding: 12px; }
  .public-nav .btn { margin-top: 7px; min-height: 48px; }
  .public-page .hero { gap: 30px; padding-block: 45px; }
  .public-page .hero h1 { font-size: 53px; }
  .public-page .hero-description { font-size: 14px; }
  .hero-principles { margin-top: 24px; }
  .hero-image-frame { border-top-left-radius: 75px; }
  .hero-image-frame img { height: 470px; }
  .hero-visual figcaption { font-size: 8px; letter-spacing: .8px; }
  .image-note { left: -10px; padding: 16px 18px; gap: 14px; bottom: 56px; }
  .image-note p { font-size: 18px; }
  .public-page .belief-inner { padding-block: 28px; }
  .belief-inner > div { flex-direction: column; align-items: flex-start; gap: 4px; }
  .belief-inner > div span + span::before { display: none; }
  .public-page .section-space { padding-block: 75px; }
  .public-page .section-intro { gap: 40px; }
  .public-page .approach-grid { gap: 25px; }
  .public-page .approach-card h3 { font-size: 23px; }
  .public-page .approach-card p { font-size: 13px; }
  .public-page .about-grid { gap: 40px; }
  .about-editorial { padding: 25px; }
  .about-botanical { width: 180px; height: 180px; }
  .about-editorial > p { font-size: 36px; }
  .public-page .about-copy h2 { font-size: 37px; }
  .public-page .body-copy { font-size: 13px; }
  .process-layout { padding: 35px; gap: 30px; }
  .public-page .process-intro h2 { font-size: 35px; }
  .public-page .process-list h3 { font-size: 21px; }
  .public-page .process-list > li { gap: 17px; }
  .faq-section { gap: 45px; padding-bottom: 75px; }
  .contact-layout { gap: 35px; }
  .channel-address { font-size: 22px; }
}
@media (max-width: 700px) {
  .public-page .wrap { width: calc(100% - 40px); }
  .public-page .site-header { height: 78px; }
  .public-page .brand > span { font-size: 27px; }
  .public-page .brand svg { width: 30px; height: 37px; }
  .public-nav { top: 68px; left: 20px; right: 20px; }
  .public-page h2 { font-size: 38px; }
  .public-page .hero { grid-template-columns: 1fr; gap: 35px; padding-block: 40px 32px; }
  .hero-copy { padding: 0; }
  .public-page .hero .eyebrow { font-size: 9px; margin-bottom: 24px; letter-spacing: .9px; }
  .eyebrow-line { width: 22px; }
  .public-page .hero h1 { font-size: clamp(50px, 10.5vw, 70px); margin-bottom: 23px; max-width: 530px; }
  .public-page .hero-description { font-size: 14px; margin-bottom: 25px; max-width: 460px; }
  .public-page .hero-actions { gap: 11px 21px; }
  .public-page .hero .btn { min-height: 52px; padding-inline: 19px; font-size: 12px; }
  .public-page .hero .text-link { font-size: 11px; }
  .hero-principles { display: none; }
  .hero-image-frame { border-radius: 70px 4px 4px 4px; }
  .hero-image-frame img { height: 390px; object-position: 50% 62%; }
  .hero-visual { max-width: 520px; width: 100%; margin: auto; }
  .image-note { left: 16px; bottom: 53px; padding: 16px 20px; gap: 16px; }
  .image-note p { font-size: 21px; }
  .hero-visual figcaption { padding-top: 15px; font-size: 8px; letter-spacing: 1.2px; }
  .public-page .belief-inner { display: flex; flex-direction: column; align-items: flex-start; gap: 22px; padding-block: 30px; }
  .belief-inner > p { font-size: 23px; }
  .belief-inner > div { flex-direction: row; gap: 19px; flex-wrap: wrap; }
  .belief-inner > div span { font-size: 10px; }
  .belief-inner > div span + span::before { display: block; left: -10px; top: 6px; width: 2px; height: 2px; }
  .public-page .section-space { padding-block: 65px; }
  .public-page .section-intro { grid-template-columns: 1fr; gap: 23px; margin-bottom: 35px; }
  .public-page .section-intro h2 { font-size: 38px; }
  .public-page .section-intro .eyebrow { margin-bottom: 19px; }
  .public-page .section-intro > p { font-size: 14px; max-width: none; }
  .public-page .approach-grid { grid-template-columns: 1fr; gap: 29px; }
  .public-page .approach-card { padding: 23px 0 0; }
  .approach-top { margin-bottom: 20px; }
  .public-page .approach-card h3 { font-size: 26px; }
  .public-page .approach-card p { font-size: 14px; max-width: none; }
  .public-page .about-section { padding-block: 50px; }
  .public-page .about-grid { grid-template-columns: 1fr; gap: 40px; }
  .about-editorial { width: min(360px, 100%); margin: auto; padding: 29px; }
  .about-botanical { width: 180px; height: 180px; margin-block: 8px; }
  .about-editorial > p { font-size: 38px; }
  .public-page .about-copy h2 { font-size: 38px; }
  .public-page .body-copy { font-size: 14px; }
  .public-page .about-signature span { font-size: 32px; }
  .public-page .about-signature small { font-size: 11px; }
  .process-layout { grid-template-columns: 1fr; gap: 36px; padding: 33px 25px; }
  .public-page .process-intro h2 { font-size: 36px; }
  .process-intro > p:not(.eyebrow) { font-size: 14px; max-width: none; }
  .process-intro .text-link { margin-top: 9px; }
  .public-page .process-list > li:first-child { border-top: 1px solid #ffffff29; padding-top: 25px; }
  .public-page .process-list > li { gap: 19px; padding-block: 25px; }
  .public-page .process-list h3 { font-size: 23px; }
  .public-page .process-list p { font-size: 13px; }
  .public-page .training-section { padding-top: 0; }
  .faq-section { grid-template-columns: 1fr; gap: 25px; padding-block: 0 65px; }
  .faq-intro h2 { font-size: 39px; }
  .faq-list summary { font-size: 14px; min-height: 80px; padding-block: 23px; }
  .faq-list details > p { font-size: 14px; padding-right: 15px; }
  .public-page .contact-section { padding-block: 55px; }
  .contact-layout { grid-template-columns: 1fr; gap: 42px; }
  .contact-copy h2 { font-size: 39px; }
  .contact-copy > p:not(.eyebrow) { font-size: 14px; max-width: none; }
  .channel-address { font-size: clamp(21px, 6vw, 30px); }
  .channel-label { font-size: 9px; }
  .contact-privacy { font-size: 11px; max-width: none; }
  .public-page .site-footer { flex-direction: column; align-items: flex-start; gap: 27px; padding-block: 33px 25px; }
  .public-page .site-footer nav { margin: 0; gap: 25px; font-size: 11px; }
  .footer-bottom { flex-wrap: wrap; gap: 11px 20px; font-size: 9px; padding-block: 20px 24px; }
  .footer-bottom > span:nth-child(2) { display: none; }
  .footer-bottom > a { margin-left: auto; }
}
@media (max-width: 360px) {
  .public-page .hero h1 { font-size: 47px; }
  .public-page .hero .eyebrow { font-size: 8px; letter-spacing: .5px; }
  .hero-image-frame img { height: 335px; }
  .belief-inner > div { gap: 12px; }
  .belief-inner > div span { font-size: 9px; }
  .belief-inner > div span + span::before { left: -7px; }
  .public-page h2, .public-page .section-intro h2, .public-page .about-copy h2, .contact-copy h2 { font-size: 34px; }
  .process-layout { padding: 30px 21px; }
  .public-page .process-intro h2 { font-size: 33px; }
  .public-page .process-list h3 { font-size: 21px; }
  .channel-address { font-size: 21px; }
  .public-page .site-footer nav { gap: 20px; }
}
/* Shared sign-in enhancements. */
.password-wrap { position: relative; }
.password-wrap input { padding-right: 75px; }
.password-toggle { position: absolute; top: 3px; right: 4px; min-height: 44px; border: 0; background: transparent; color: var(--ink); font-size: 12px; padding-inline: 12px; }
.password-toggle[hidden] { display: none; }
.auth-footnote { color: #64735d; }
.auth-page .form-field input { min-height: 50px; font-size: 16px; }
.auth-page .auth-back { padding-block: 10px; }
@media (prefers-reduced-motion: reduce) { .public-page *, .public-page *::after { transition: none !important; } }
