.app-guest { background: #f8f9f7; color: var(--color-text); }
.public-container { width: min(100% - 48px, 1180px); margin-inline: auto; }
.public-header { position: relative; z-index: 4; background: #fff; border-bottom: 1px solid #e5eae6; }
.public-header-inner { min-height: 78px; display: flex; align-items: center; gap: 30px; }
.public-brand { display: inline-flex; align-items: center; gap: 11px; margin-right: auto; color: #213d39; text-decoration: none; font: 600 1.03rem/1.2 var(--font-heading); }
.public-brand-mark { width: 38px; height: 38px; border-radius: 11px; display: grid; place-items: center; color: #2f6860; background: #e9f2ed; }
.public-nav { display: flex; align-items: center; gap: clamp(16px, 2.5vw, 32px); }
.public-nav a, .public-menu a { color: #415650; text-decoration: none; font-size: .9rem; font-weight: 550; }
.public-nav a:hover, .public-menu a:hover { color: #225f56; }
.public-login-button { border: 1px solid #b7cfc7; border-radius: 9px; padding: 10px 17px; background: #fff; color: #24584f; font-weight: 650; white-space: nowrap; cursor: pointer; }
.public-login-button:hover { background: #eaf3ef; }
.public-menu { display: none; }
.public-home { overflow: clip; }
.public-home h1, .public-home h2, .public-home h3 { color: #203d38; font-family: var(--font-heading); letter-spacing: -.025em; }
.public-home p { line-height: 1.72; }
.public-eyebrow { color: #39756b; text-transform: uppercase; font-size: .72rem; font-weight: 750; letter-spacing: .13em; margin-bottom: 13px; }
.public-hero { background: #f0f5f0; border-bottom: 1px solid #e0e9e2; }
.public-hero-grid { min-height: 650px; display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(36px, 6vw, 90px); align-items: center; padding-block: 60px; }
.public-hero-copy { max-width: 610px; }
.public-hero h1 { font-size: clamp(2.6rem, 4vw, 4rem); line-height: 1.12; margin: 0 0 10px; }
.public-hero-role { color: #2b5b52; font-family: var(--font-heading); font-size: clamp(1.2rem, 2vw, 1.55rem); font-weight: 600; }
.public-hero-credential { color: #536861; font-size: .94rem; margin-top: 8px; }
.public-lead { max-width: 540px; margin-top: 26px; font-size: clamp(1rem, 1.4vw, 1.18rem); color: #536861; }
.public-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 31px; }
.public-button { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 46px; border-radius: 9px; padding: 11px 18px; font-size: .88rem; font-weight: 680; text-decoration: none; cursor: pointer; }
.public-button-primary { background: #2d675e; border: 1px solid #2d675e; color: white; }
.public-button-primary:hover { background: #20534c; color: white; }
.public-button-light { background: transparent; border: 1px solid #b7c9be; color: #28574e; }
.public-button-light:hover { background: #fff; }
.public-hero-signature { margin-top: 35px; color: #637970; font-size: .87rem; }
.public-hero-image { position: relative; overflow: hidden; border: 1px solid #d8e1d9; border-radius: 17px; box-shadow: 0 16px 34px rgba(35, 65, 57, .11); background: #e8e1df; }
.public-hero-image img { width: 100%; height: clamp(350px, 35vw, 500px); object-fit: cover; object-position: center; display: block; }
.public-photo-caption { position: absolute; left: 18px; bottom: 18px; padding: 8px 12px; background: rgba(255,255,255,.9); border-radius: 8px; color: #28483f; font-size: .83rem; font-weight: 650; }
.public-home .public-section { display: block; width: auto; margin: 0; padding-block: clamp(64px, 7vw, 105px); scroll-margin-top: 20px; }
.public-section h2 { font-size: clamp(2rem, 3.2vw, 3rem); line-height: 1.18; margin: 0 0 20px; }
.public-section h3 { font-size: 1.18rem; }
.public-section p { color: #516660; }
.public-about-grid, .public-aba-grid, .public-goals-grid, .public-contact-grid { display: grid; grid-template-columns: .83fr 1.17fr; gap: clamp(28px, 7vw, 100px); }
.public-about-grid { grid-template-columns: 1.17fr .83fr; align-items: center; }
.public-about { background: #fff; }
.public-subtitle { font-weight: 650; color: #3d6a60 !important; }
.public-about-photo { display: block; width: min(100%, 340px); height: auto; aspect-ratio: 3 / 4; object-fit: cover; object-position: center 8%; border-radius: 14px; justify-self: end; }
.public-about-content > p:not(.public-eyebrow):not(.public-subtitle) { font-size: 1.08rem; }
.public-detail { border-top: 1px solid #e6ece8; padding-top: 19px; margin-top: 22px; }
.public-detail h3 { margin-bottom: 7px; }
.public-detail p { margin: 0; }
.public-aba { background: #f7f9f6; }
.public-aba-symbol { display: block; width: 82px; height: auto; margin-top: 24px; }
.public-services { background: #fff; }
.public-section-heading-wide { max-width: 620px; margin-bottom: 36px; }
.public-service-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 18px; }
.public-service { border: 1px solid #e3eae5; border-radius: 13px; padding: 25px 23px; background: #fbfcfa; }
.public-service-icon { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 10px; margin-bottom: 21px; background: #e9f2ed; color: #387269; }
.public-service h3 { line-height: 1.3; margin: 0 0 12px; }
.public-service p { font-size: .89rem; margin: 0; }
.public-goals { background: #eaf1eb; }
.public-contact { background: #fff; }
.public-contact-box { padding: clamp(24px, 3vw, 36px); background: #f2f6f2; border: 1px solid #e1eae3; border-radius: 14px; display: grid; align-content: center; gap: 17px; }
.public-contact-box a, .public-contact-box p { display: flex; align-items: center; gap: 11px; margin: 0; color: #285e55; overflow-wrap: anywhere; }
.public-contact-box a:hover { color: #173d37; }
.public-footer { background: #193c36; color: #dce9e2; }
.public-footer-main { display: grid; grid-template-columns: minmax(0, 1.8fr) repeat(2, minmax(0, 1fr)); gap: clamp(30px, 4vw, 65px); padding-block: 66px 60px; }
.public-footer-main.has-contact { grid-template-columns: minmax(0, 1.8fr) repeat(3, minmax(0, 1fr)); }
.public-footer-identity { max-width: 310px; }
.public-footer-brand { display: inline-block; color: #fff; font-family: var(--font-heading); font-size: 1.35rem; font-weight: 700; }
.public-footer-brand:hover { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.public-footer-subtitle { color: #b6d1c7 !important; font-weight: 650; margin-top: 9px; }
.public-footer-identity p:last-child { color: #d0dfd6; line-height: 1.65; margin-top: 20px; }
.public-footer-column { display: flex; align-items: flex-start; flex-direction: column; gap: 7px; min-width: 0; }
.public-footer-column h2 { color: #c2d7cc; font: 750 .72rem/1.4 var(--font-sans); letter-spacing: .12em; text-transform: uppercase; margin-bottom: 13px; }
.public-footer-column a, .public-footer-column button, .public-footer-column span { color: #e5eee8; font: 500 .9rem/1.4 var(--font-sans); overflow-wrap: anywhere; }
.public-footer-column a, .public-footer-column button { display: inline-flex; align-items: center; min-height: 42px; }
.public-footer-column button { border: 0; background: none; padding: 0; text-align: left; cursor: pointer; }
.public-footer-column a:hover, .public-footer-column button:hover { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.public-footer-legal { border-top: 1px solid rgba(225,239,231,.18); color: #bfd0c6; font-size: .8rem; padding-block: 20px; }
.public-text-button { border: 0; background: none; color: #2e675c; font-weight: 650; cursor: pointer; }
.public-text-button { display: block; margin: 0 0 12px auto; font-size: .83rem; }
.public-auth-intro { color: #65776f; font-size: .9rem; margin-bottom: 18px; }
@media (max-width: 1024px) { .public-service-grid { grid-template-columns: repeat(2, minmax(0,1fr)); } .public-hero-grid { min-height: 0; } }
@media (max-width: 900px) { .public-footer-main, .public-footer-main.has-contact { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 768px) { .public-nav { display: none; } .public-menu { display: block; position: relative; } .public-menu summary { cursor: pointer; list-style: none; color: #28574e; font-weight: 650; border: 1px solid #b7cfc7; border-radius: 9px; padding: 9px 13px; } .public-menu summary::-webkit-details-marker { display: none; } .public-menu nav { position: absolute; top: calc(100% + 10px); right: 0; min-width: 180px; display: grid; gap: 16px; padding: 18px; background: #fff; border: 1px solid #dfe8e1; border-radius: 11px; box-shadow: var(--shadow-lg); } .public-menu button { text-align: left; border: 0; background: none; padding: 0; color: #28574e; font: 650 .9rem var(--font-sans); } .public-hero-grid { grid-template-columns: 1fr; padding-block: 55px; } .public-hero-image { max-width: 580px; } .public-hero-image img { height: 340px; } .public-about-grid, .public-aba-grid, .public-goals-grid, .public-contact-grid { grid-template-columns: 1fr; gap: 20px; } .public-about-photo { justify-self: start; } }
@media (max-width: 520px) { .public-container { width: min(100% - 32px, 1180px); } .public-header-inner { min-height: 68px; gap: 12px; } .public-brand { font-size: .91rem; min-width: 0; } .public-brand span:last-child { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } .public-brand-mark { flex: 0 0 34px; width: 34px; height: 34px; } .public-login-button { display: none; } .public-hero-grid { padding-block: 36px 50px; gap: 32px; } .public-hero h1 { font-size: clamp(2.35rem, 9vw, 3rem); } .public-hero-image img { height: 250px; } .public-about-photo { width: min(100%, 250px); } .public-actions { align-items: stretch; } .public-actions > * { width: 100%; } .public-service-grid { grid-template-columns: 1fr; } .public-section { padding-block: 62px; } .public-footer-main, .public-footer-main.has-contact { grid-template-columns: 1fr; gap: 30px; padding-block: 52px 44px; } .public-footer-column { gap: 2px; } .public-footer-column h2 { margin-bottom: 6px; } }
