/* Legal Point: white paper, advocate green, clear content and action hierarchy.
   Load after page styles. Decorative rules differ from the stronger control borders. */
:root {
  color-scheme: light;
  --ink: #17251f;
  --black: #0c0f0d;
  --green: #12382d;
  --green-2: #205641;
  --green-pale: #e7f0e9;
  --warm: #f3f6f4;
  --paper: #ffffff;
  --white: #ffffff;
  --muted: #4c5c53;
  --line: #c4d1c8;
  --line-dark: #638275;
  --surface-soft: #f3f6f4;
  --surface-sage: #e0ece3;
  --control-border: #6d8073;
}
body, body.shop, body.legal-page { color: var(--ink); background: var(--paper); }
::selection { color: #fff; background: var(--green); }
.site-header { background: #fff; border-bottom-color: #b8c9be; }
.main-nav > a:not(.button):hover { text-decoration: underline; text-underline-offset: .35em; }
.main-nav > a:not(.button)[aria-current="page"] { font-weight: 700; text-decoration-thickness: 2px; }
.menu-button { border-color: var(--control-border); }

/* Main actions are filled green. Secondary actions retain a clear outline. */
.button-primary, .shop .button, .shop button {
  color: #fff; background: var(--green); border-color: var(--green);
}
.button-primary:hover, .shop .button:hover, .shop button:hover { background: var(--green-2); border-color: var(--green-2); }
.button-outline, .button-ghost, .shop .secondary {
  color: var(--green); background: #fff; border-color: var(--control-border);
}
.button-outline:hover, .button-ghost:hover, .shop .secondary:hover { color: var(--green); background: var(--green-pale); border-color: var(--green); }
.button-light { color: var(--green); background: #fff; border-color: #fff; }
.text-link, .card-link { color: var(--green); border-color: var(--line); }
.text-link:hover, .card-link:hover { text-decoration: underline; text-underline-offset: .25em; }

/* Two-tone focus stays visible on both white and dark green surfaces.
   These shared accessibility rules intentionally override older page/ID rules. */
body :is(a, button, input, textarea, select, summary, [tabindex]):focus-visible {
  outline: 3px solid var(--green) !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 3px #fff !important;
}
body :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]):not([type="button"]), textarea, select) {
  color: var(--ink) !important;
  background-color: #fff !important;
  border-color: var(--control-border) !important;
}
body :is(input, textarea)::placeholder { color: #526158; opacity: 1; }
body :is(input[type="checkbox"], input[type="radio"]) { accent-color: var(--green); }
body :is(input, textarea, select)[aria-invalid="true"] { border-color: #9b3028 !important; }
.contact-optional, .contact-topic-hint, .contact-data-notice,
.legal-meta, .sample-note, .muted, .subtle, .shop .small { color: var(--muted); }

/* Separate cards rather than a single table-like block of similar surfaces. */
.services-grid, .models-grid, .situation-grid, .result-grid {
  gap: 1rem; border: 0;
}
.service-card, .models-grid article, .situation-grid article, .result-grid article {
  background: #fff; border: 1px solid var(--line);
}
.service-card-featured { background: var(--green-pale); border-top: 3px solid var(--green); }
.service-number, .models-grid > article > span { color: var(--green-2); }
.service-card:hover { border-color: #869f8f; }
.quick-grid { gap: 1rem; border: 0; }
.quick-grid > a { border: 1px solid #638275; background: #194536; }
.quick-grid > a:hover { background: #24543f; border-color: #c4dacb; }
.quick-grid p, .section-heading-light > p { color: #dce8df; }
.quick-grid span, .quick-grid strong, .eyebrow-light { color: #d5e6da; }
.consultation-card .card-label, .consultation-price strong, .card-note,
.formal-note, .page-cta .cta-note { color: #d5e6da; }

/* Home: cooperation stays together; the profile starts a new, green chapter. */
.home-page #stala-obsluga { background: var(--surface-soft); }
.home-page .services-section, .home-page .process-section { background: #fff; }
.home-page .process-list li { border-top-color: #6d8b78; }
.home-page .cooperation-models { background: var(--surface-soft); }
.home-page .models-grid article { background: #fff; border-top: 3px solid #5a7d67; }
.home-page .home-contact { background: #fff; border-top: 2px solid #91a99a; }
.home-page .home-contact-form { color: #fff; background: var(--green); border: 1px solid var(--green); }
.home-contact-form :is(.contact-optional, .contact-topic-hint, .contact-data-notice) { color: #dce8df; }
.home-contact-form .contact-data-notice a { color: #fff; }
.home-contact-form .contact-submit-row .button { color: var(--green); background: #fff; border-color: #fff; }
.home-contact-form .contact-submit-row .button:hover { background: #e1eee5; border-color: #e1eee5; }
.home-contact .home-booking {
  padding: 1.1rem 1.25rem; background: var(--surface-soft);
  border: 1px solid var(--line); border-left: 3px solid #5a7d67;
}
.home-booking .booking-actions .button { background: #fff; }
.home-booking .booking-actions .button:hover { background: var(--green-pale); }
.home-page .about-section { background: var(--surface-sage); border-top: 3px solid var(--green); border-bottom: 1px solid #a7bfae; }
.home-page .portrait-card { background: #fff; box-shadow: .65rem .65rem 0 #b8cebf; }
.home-page .industries-section { background: #fff; }
.industry-list span { color: var(--green); background: var(--surface-soft); border-color: #afc2b5; }
.home-page .resources-section { background: var(--surface-soft); border-top: 2px solid #91a99a; }
.home-page .faq-section { background: #fff; border-top-color: var(--line); }
.faq-list details { border-color: #a7bbaE; }
.faq-list summary:hover, .faq-list details[open] { background: var(--surface-soft); }
.faq-list details[open] { box-shadow: inset 3px 0 var(--green); padding-left: 1rem; }

/* Light entry sections across services, articles and products. */
.subpage-hero { color: var(--ink); background: var(--green-pale); border-bottom: 2px solid #8aa994; }
.subpage-hero h1 { color: var(--green); }
.subpage-hero .eyebrow-light { color: var(--green-2); }
.subpage-hero .subpage-lead, .subpage-hero .article-byline { color: #344c3e; }
.subpage-hero .breadcrumbs, .subpage-hero .article-meta { color: var(--muted); }
.subpage-hero .breadcrumbs a, .guide-hero-links a { color: var(--green); text-decoration: underline; text-underline-offset: .25em; }
.subpage-hero .button-light { color: #fff; background: var(--green); border-color: var(--green); }
.subpage-hero .button-outline-light { color: var(--green); border-color: var(--control-border); }
.subpage-nav, .article-toc, .guide-sidebar { background: var(--surface-soft); border: 1px solid var(--line); border-top: 3px solid var(--green); }
.subpage-nav a:not(.button):hover, .article-toc a:hover { color: var(--green); background: var(--green-pale); text-decoration: underline; }
.content-section + .content-section { padding-top: 1.75rem; border-top: 1px solid var(--line); }
.article-section + .article-section { padding-top: 1.25rem; border-top: 1px solid var(--line); }
.scope-note, .notice-box, .monit-sample, .funnel-inline { background: var(--green-pale); border-left-color: var(--green); }
.author-box { background: var(--surface-soft); }
.article-table th, .article-table td, .sample-table th, .sample-table td { border-color: var(--line); }
.article-table thead th, .sample-table th { background: var(--green-pale); }
.article-table tbody tr:nth-child(even), .sample-table tbody tr:nth-child(even) { background: var(--surface-soft); }
.funnel-card { background: #fff; border-color: var(--line); border-top: 3px solid #5a7d67; }
.funnel-disclosure { border-left-color: #5a7d67; }
.legal-section { border-color: #a7bbae; }
.privacy-nav a { border-color: var(--control-border); background: #fff; }
.privacy-details { border-color: #a7bbae; }
.privacy-details[open] > summary { background: var(--green-pale); border-bottom-color: #a7bbae; }

/* Guide: shared green headers and white bodies for both resource panels. */
.guide-topic-buttons button { border-color: transparent; }
.guide-topic-buttons button:hover { background: #dce9df; }
.guide-topic-buttons button[aria-pressed="true"] { color: #fff; background: var(--green); border-color: var(--green); box-shadow: inset 3px 0 #bcd6c4; }
.guide-topic-buttons [data-topic-count] { opacity: 1; }
.guide-page .guide-section:not(.guide-materials-panel) { border-top: 1px solid #a7bbae; }
.guide-materials-frame { border: 1px solid #9ab7a4; background: #fff; }
.guide-materials-header { color: #fff; background: var(--green); }
.guide-materials-header h2 { color: #fff; }
.guide-materials-header .eyebrow, .guide-materials-header > p { color: #dce8df; }
.guide-materials-body { background: #fff; }
.guide-materials-body .guide-free-card, .guide-materials-body .service-card { background: #fff; }
.guide-materials-body .guide-free-access, .guide-materials-body .service-card + .service-card { border-color: var(--line); }
.guide-materials-body .service-number { color: var(--green-2); font-weight: 700; }

/* Contact page: white controls on a clearly bounded, pale form panel. */
.contact-compact-section .contact-fields { padding: 1.25rem; background: var(--surface-soft); border: 1px solid #9ab0a1; }
.contact-compact .contact-next { border-top-color: #91a99a; }
.contact-page-heading h1 { color: var(--green); }

/* Newsletter is green, with a white action. Gold is not a competing CTA color. */
.newsletter-strip { border-top: 3px solid #89a893; }
.newsletter-strip button, #materialy-box button { color: var(--green); background: #fff; border-color: #fff; }
.newsletter-strip button:hover, #materialy-box button:hover { color: var(--green); background: #e1eee5; border-color: #e1eee5; }
.newsletter-strip #newsletter-form .newsletter-consent input { accent-color: var(--green); }
.newsletter-strip .eyebrow, .newsletter-strip .newsletter-data-notice { color: #dce8df; }

/* Orders and consultation keep the same visual language without changing flows. */
.transaction-page, body.shop, .newsletter-state-page { background: var(--surface-soft); }
.transaction-page > header { background: #fff; border-bottom-color: #a7bbae; }
.transaction-page :is(.card, .choices label), .shop .card, .newsletter-state-page .card { border-color: #a7bbae; border-radius: 3px; }
.transaction-page .card, .shop .card { border-top: 3px solid var(--green); }
.transaction-page .choices label { border: 1px solid var(--control-border); background: #fff; }
.transaction-page .choices label:has(input:checked) { background: var(--green-pale); border-color: var(--green); box-shadow: inset 3px 0 var(--green); }
.transaction-page button, .transaction-page .button { background: var(--green); color: #fff; border-radius: 2px; }
.transaction-page button:hover, .transaction-page .button:hover { background: var(--green-2); }
.transaction-page .note { background: var(--green-pale); border-left-color: #5a7d67; color: var(--ink); }
.transaction-page .tag, .transaction-page small { color: var(--muted); }
.transaction-page .error { color: #8a2d24; }
.shop .card { background: #fff; }
.shop .notice { background: var(--green-pale); }
.shop .notice.error { background: #fff3f1; border-color: #9b3028; }
.shop .button, .shop button { border-radius: 2px; }
.shop .badge { color: var(--green); background: var(--green-pale); border-color: #a7bbae; }
.newsletter-state-page .brand, .newsletter-state-page .subtle { color: var(--muted); }

/* Keep the black footer and the official mark on a separate, centered white field. */
.site-footer { background: var(--black); color: #e0e7e2; }
.site-footer .footer-brand span, .site-footer .footer-brand p,
.site-footer .footer-bottom, .site-footer .footer-location { color: #b9c6bd; }
.site-footer .footer-main { border-color: #53695b; }
.site-footer a:hover { text-decoration: underline; text-underline-offset: .25em; }
.adwokatura-footer, .professional-affiliation { background: #fff; color: var(--ink); }
.adwokatura-footer { border-top: 2px solid #a7bbae; }
@media (max-width: 740px) {
  .contact-compact-section .contact-fields { padding: 1rem; }
}

/* Clear actions and feedback, with comfortable touch targets. */
.card-link { display: inline-flex; align-items: center; min-height: 44px; padding-block: .6rem; gap: .5rem; }
.service-card .card-link, .featured-card .card-link { align-self: flex-start; }
.guide-material-links a, .guide-hero-links a { min-height: 44px; align-items: center; }
.guide-hero-links a { display: inline-flex; }
.service-hero-actions, .product-hero-order { margin-top: 1.5rem; }
.service-hero-actions p, .product-hero-order p { max-width: 44rem; margin: .7rem 0 0; font-size: var(--text-small); line-height: 1.6; color: var(--muted); }
.checkout-step-note { font-size: var(--text-small); line-height: 1.6; margin-top: .75rem; }
button:disabled { cursor: wait; }
fieldset:disabled button { cursor: not-allowed; }
:is(#contact-status, #form-status, #checkout-status)[data-state] { padding: .8rem 1rem; border: 1px solid #91a99a; border-left: 3px solid var(--green); background: var(--green-pale); color: var(--green); line-height: 1.6; }
:is(#contact-status, #form-status, #checkout-status)[data-state="error"] { background: #fff3f1; border-color: #9b3028; color: #8a2d24; }
@media (max-width: 740px) {
  .card-link { padding-inline: .4rem; margin-left: -.4rem; }
  .service-hero-actions .button, .product-hero-order .button { min-height: 48px; }
}
