/* Shared public-page design, using the homepage's existing brand tokens. */
.cc-public { background: #fffdf8; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: var(--cc-body); }
.cc-public h1, .cc-public h2, .cc-public h3, .cc-public h4 { font-family: inherit; letter-spacing: -.04em; }
.cc-public p { line-height: 1.8; }
.cc-public .cc-header { position: relative; top: auto; }
.cc-public .cc-header + .header-spacing-helper { display: none; }
.cc-public .cc-header { box-shadow: 0 8px 32px rgba(27,33,9,.04); }
.cc-public .btn { border-radius: 999px; padding: .8rem 1.5rem; text-transform: none; letter-spacing: 0; }
.cc-public .btn-lg { padding: 1rem 1.65rem; font-size: .96rem; }
.cc-public .btn-primary { box-shadow: 0 5px 15px rgba(78,98,7,.13); }
.cc-public .btn span[aria-hidden] { margin-left: .6rem; }
.cc-public .cc-footer { background: #182111; }
.cc-public .cc-section { padding: 5rem 0; }
.cc-public .cc-section-head h2 { font-size: clamp(2rem, 3.4vw, 3rem); }
.cc-public .cc-page-heading { padding: 3.5rem 0; background: radial-gradient(ellipse at 90% 20%, #fef0d0, transparent 55%), #f0f3e5; border-bottom: 1px solid var(--cc-line); }
.cc-public .cc-page-heading h1 { font-size: clamp(2.3rem, 4.5vw, 3.6rem); line-height: 1.1; margin: 0; color: var(--cc-ink); }
.cc-public .form-control { border: 1px solid #dce2d1; background: #fffdf9; border-radius: 12px; padding: .8rem 1rem; min-height: 49px; font-family: inherit; font-size: .95rem; color: var(--cc-ink); box-shadow: none; }
.cc-public select.form-control { height: auto; }
.cc-public textarea.form-control { min-height: 130px; }
.cc-public .form-control:focus { border-color: var(--cc-green-dark); box-shadow: 0 0 0 3px rgba(136,168,13,.16); background: #fff; }
.cc-public label { font-size: .83rem; font-weight: 600; color: var(--cc-ink); margin-bottom: .5rem; }
.cc-public input[type=checkbox] { accent-color: var(--cc-green-dark); width: 16px; height: 16px; }
.cc-public .form-check-label { font-weight: 400; line-height: 1.6; }
.cc-public .form-group, .cc-public form .mb-3 { margin-bottom: 1.3rem !important; }
.cc-public a:not(.btn):not(.nav-link):not(.dropdown-item) { text-underline-offset: 4px; }
.cc-public main a:not(.btn) { color: var(--cc-green-dark); }
.cc-public .alert { border-radius: 12px; font-size: .9rem; }
.cc-public .cc-auth-section { padding: 4.5rem 0 5.5rem; background: radial-gradient(ellipse at 0% 60%, #edf1dc, transparent 60%); }
.cc-public .cc-auth-grid { row-gap: 2rem; }
.cc-public .cc-auth-intro { padding-right: 3rem; padding-top: 1rem; }
.cc-public .cc-auth-intro h1 { font-size: clamp(2.6rem, 4vw, 3.6rem); line-height: 1.08; margin-bottom: 1.25rem; }
.cc-public .cc-auth-intro .cc-lead { font-size: 1.05rem; margin-bottom: 1.75rem; }
.cc-public .cc-auth-story { position: relative; overflow: hidden; border-radius: 90px 90px 20px 20px; max-width: 360px; }
.cc-public .cc-auth-story img { width: 100%; height: 260px; object-fit: cover; display: block; }
.cc-public .cc-auth-story::after { content: ""; position: absolute; inset: 40% 0 0; background: linear-gradient(transparent, rgba(18,28,12,.85)); }
.cc-public .cc-auth-story p { position: absolute; bottom: 1.2rem; left: 1.5rem; margin: 0; z-index: 1; color: #fff; font-size: 1.2rem; letter-spacing: -.02em; }
.cc-public .cc-auth-story strong { display: block; }
.cc-public .cc-auth-note { max-width: 360px; font-size: .75rem; line-height: 1.65; margin: 1.25rem 0 0; color: var(--cc-muted); }
.cc-public .cc-form-card { padding: 2.4rem; border: 1px solid var(--cc-line); border-radius: 24px; background: #fff; box-shadow: 0 16px 48px rgba(27,33,9,.06); }
.cc-public .cc-form-card h2 { font-size: 1.75rem; margin-bottom: .6rem; }
.cc-public .cc-form-card h1 { font-size: 2.2rem; line-height: 1.1; }
.cc-public .cc-form-description { font-size: .9rem; color: var(--cc-muted); margin-bottom: 1.8rem; }
.cc-public .cc-form-card form > p { font-size: .85rem; }
.cc-public .cc-form-card .btn-block, .cc-public .cc-form-card .w-100 { padding: .95rem 1.2rem; }
.cc-public .cc-form-card-narrow { max-width: 520px; margin: 0 auto; }
.cc-public .cc-about-hero { padding: 5rem 0; background: radial-gradient(ellipse at 15% 100%, #edf1dc, transparent 60%); }
.cc-public .cc-about-hero h1 { font-size: clamp(2.7rem, 4.8vw, 4.2rem); letter-spacing: -.055em; line-height: 1.06; margin-bottom: 1.4rem; }
.cc-public .cc-about-hero h1 span { color: var(--cc-green-dark); }
.cc-public .cc-about-hero .cc-lead { font-size: 1.15rem; max-width: 29rem; }
.cc-public .cc-about-hero p:not(.cc-lead) { font-size: .95rem; max-width: 29rem; margin-bottom: 1.75rem; }
.cc-public .cc-about-image { padding-left: 2rem; }
.cc-public .cc-about-image img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 20px; box-shadow: var(--cc-shadow-lg); }
.cc-public .cc-about-values { background: #f2f3eb; }
.cc-public .cc-content-card { border: 1px solid var(--cc-line); border-radius: 22px; background: #fff; padding: 2rem; height: 100%; }
.cc-public .cc-content-card h3 { font-size: 1.35rem; margin-bottom: .8rem; }
.cc-public .cc-content-card p { font-size: .9rem; color: var(--cc-muted); margin-bottom: 0; }
.cc-public .cc-card-symbol { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; background: var(--cc-green-tint); color: var(--cc-green-dark); border-radius: 12px; font-size: .85rem; font-weight: 600; margin-bottom: 1.6rem; }
.cc-public .cc-editorial-heading { font-size: clamp(2rem,3.5vw,3rem); line-height: 1.1; }
.cc-public .cc-process-list > div { display: flex; gap: 1.2rem; padding: 1.5rem 0; border-bottom: 1px solid var(--cc-line); }
.cc-public .cc-process-list > div:first-child { padding-top: 0; }
.cc-public .cc-process-list > div:last-child { padding-bottom: 0; border: 0; }
.cc-public .cc-process-list > div > span { display: grid; place-items: center; flex: 0 0 36px; height: 36px; border-radius: 50%; background: var(--cc-amber-tint); color: var(--cc-green-dark); font-size: .85rem; font-weight: 600; }
.cc-public .cc-process-list h3 { font-size: 1.05rem; }
.cc-public .cc-team-card { max-width: 860px; margin: 0 auto; display: grid; grid-template-columns: 280px 1fr; background: #fff; border: 1px solid var(--cc-line); border-radius: 24px; overflow: hidden; }
.cc-public .cc-team-card > img { width: 100%; height: 100%; max-height: 400px; object-fit: cover; object-position: top; }
.cc-public .cc-team-card > div { padding: 2.5rem; align-self: center; }
.cc-public .cc-team-card h3 { font-size: 1.8rem; }
.cc-public .cc-team-card p { color: var(--cc-muted); font-size: .95rem; }
.cc-public .cc-cta { background: radial-gradient(ellipse at 100% 0%, #485b22, transparent 65%), #202b18; border-radius: 28px; padding: 4rem 2rem; }
.cc-public .cc-cta h2 { font-size: clamp(2rem,3.5vw,3rem); }
.cc-public .cc-cta .cc-eyebrow { color: #efd08b; }
.cc-public.cc-page-contact #contacts { padding: 4rem 0; }
.cc-public.cc-page-contact #contact-form { margin-top: 0 !important; padding: 2rem 1rem; background: #fff; border: 1px solid var(--cc-line); border-radius: 22px; }
.cc-public.cc-page-contact #contacts .card { border-radius: 20px; background: #f0f3e5 !important; margin-left: 1rem !important; }
.cc-public.cc-page-contact #contacts .card-body { padding: 1.75rem !important; }
.cc-public.cc-page-news .services, .cc-public.cc-page-gallery main > section { padding: 4rem 0; }
.cc-public.cc-page-news .card { border: 1px solid var(--cc-line); border-radius: 22px; overflow: hidden; box-shadow: 0 4px 16px rgba(27,33,9,.03); width: 100%; }
.cc-public.cc-page-news .card-body { padding: 1.6rem; }
.cc-public.cc-page-news .card-title { font-size: 1.3rem; }
.cc-public.cc-page-news .btn-orange { background: var(--cc-green-deep); color: #fff; }
.cc-public.cc-page-terms_and_conditions main > .container, .cc-public.cc-page-privacy_policy main > .container { max-width: 900px; margin-top: 3rem; margin-bottom: 4rem; padding: 2.5rem; border: 1px solid var(--cc-line); border-radius: 24px; background: #fff; line-height: 1.85; }
.cc-public.cc-page-confirm main > .container { max-width: 650px; margin-top: 4rem; margin-bottom: 4rem; border: 1px solid var(--cc-line); border-radius: 24px; background: #fff; padding: 2rem; }
@media (min-width:1200px) { .cc-public .cc-header { position: sticky; top: 0; z-index: 1030; } }
@media (max-width:991.98px) {
    .cc-public .cc-auth-section, .cc-public .cc-about-hero { padding: 3rem 0; }
    .cc-public .cc-auth-intro { padding-right: 15px; padding-top: 0; }
    .cc-public .cc-auth-story, .cc-public .cc-auth-note { display: none; }
    .cc-public .cc-auth-intro .cc-lead { margin-bottom: 0; }
    .cc-public .cc-about-image { padding-left: 0; margin-top: 2rem; max-width: 540px; }
    .cc-public .cc-section { padding: 3.5rem 0; }
    .cc-public.cc-page-contact #contacts .card { margin-left: 0 !important; }
}
@media (max-width:575.98px) {
    .cc-public .cc-form-card, .cc-public .cc-content-card { padding: 1.5rem; border-radius: 18px; }
    .cc-public .cc-page-heading { padding: 2.5rem 0; }
    .cc-public .cc-team-card { grid-template-columns: 1fr; }
    .cc-public .cc-team-card > img { height: 280px; }
    .cc-public .cc-team-card > div { padding: 1.5rem; }
    .cc-public .cc-cta { padding: 3rem 1.5rem; }
    .cc-public.cc-page-terms_and_conditions main > .container, .cc-public.cc-page-privacy_policy main > .container { padding: 1.5rem; width: calc(100% - 30px); }
}
@media (prefers-reduced-motion:reduce) { .cc-public *, .cc-public *::before, .cc-public *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }
.cc-public .cc-contact-aside { padding: 2rem 2rem 2rem 3rem; }
.cc-public .cc-contact-detail { padding: 1.25rem 0; border-bottom: 1px solid var(--cc-line); overflow-wrap: anywhere; }
.cc-public .cc-contact-detail > span { display: block; color: var(--cc-muted); font-size: .75rem; margin-bottom: .35rem; }
.cc-public .cc-contact-detail > a, .cc-public .cc-contact-detail > strong { font-size: 1rem; font-weight: 600; color: var(--cc-ink); }
@media (max-width:991.98px) { .cc-public .cc-contact-aside { padding: 1rem 15px; } }
