/* Shared customer-facing pages. Colour roles come from brand-tokens.css. */
.public-inner { --page-accent: var(--argodis-brand-green); }
.public-content { padding-bottom: 1rem; }
.public-page-hero { padding-block: 3rem; max-width: 58rem; }
.public-page-hero .home-eyebrow::before { content: ''; display: inline-block; width: 10px; height: 20px; margin-right: 10px; background: var(--page-accent); border-radius: 12px 0; vertical-align: middle; }
.public-inner .public-page-hero h1 { font-size: clamp(2.1rem, 4.4vw, 3.6rem); line-height: 1.16; }
.public-page-hero > p:not(.home-eyebrow) { font-size: 1.125rem; max-width: 45rem; }
.public-section { padding-block: 2.5rem; }
.public-section > h2 { max-width: 48rem; }
.public-inner .public-section h2 { font-size: clamp(1.65rem, 3vw, 2.5rem); }
.public-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
.public-grid-three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.public-card { border: 1px solid var(--home-line); border-radius: 12px; padding: 1.5rem; min-width: 0; }
.public-card p, .public-prose p { margin-bottom: 1rem; }
.public-card p:last-child { margin-bottom: 0; }
.public-card > h3 { border-top: 3px solid var(--page-accent); padding-top: 1rem; }
.public-card:nth-child(3n+2) > h3 { border-color: var(--argodis-brand-pink); }
.public-card:nth-child(3n+3) > h3 { border-color: var(--argodis-brand-orange); }
.public-inner :is(.public-card, .public-prose, .public-note) a { text-decoration: underline; }
.public-inner :is(.public-card, .public-prose, .public-note) ul { list-style: disc; padding-left: 1.25rem; }
.public-inner li { margin-bottom: .35rem; }
.public-note { border-left: 4px solid var(--argodis-brand-orange); padding: 1rem 1.5rem; background: var(--argodis-surface); margin-block: 1.5rem; }
.public-note h2, .public-note h3 { font-size: 1.2rem; margin-bottom: .75rem; }
.public-prose { max-width: 52rem; }
.public-prose :is(h2, h3, h4) { margin-top: 1.75rem; }
.public-prose h4 { font-weight: 700; }
.public-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; margin-top: 1.5rem; }
.public-phone { display: inline-flex; min-height: 48px; align-items: center; font-weight: 750; font-size: 1.125rem; }
.public-enquiry { display: grid; grid-template-columns: 1.3fr 1fr; align-items: center; gap: 2rem; border-top: 4px solid var(--argodis-brand-orange); padding-block: 2.5rem; margin-top: 2rem; }
.public-inner .public-enquiry h2 { font-size: clamp(1.6rem, 3vw, 2.5rem); }
.public-enquiry .public-actions { flex-direction: column; align-items: flex-start; margin: 0; }
.public-photo { margin-block: 1rem; }
.public-photo img { border: 1px solid var(--argodis-control-border); border-radius: 40px 8px 8px 8px; width: 100%; height: auto; }
.public-photo figcaption { padding-top: .75rem; color: var(--home-muted); }
.public-steps { list-style: none; padding: 0; counter-reset: care-step; }
.public-steps li { counter-increment: care-step; display: grid; grid-template-columns: 48px 1fr; gap: 1rem; border-top: 1px solid var(--home-line); padding-block: 1.5rem; }
.public-steps li::before { content: counter(care-step, decimal-leading-zero); font-weight: 800; color: var(--argodis-action); font-size: 1.5rem; }
.public-form { max-width: 52rem; }
.public-field { min-width: 0; }
.public-field > label, .public-form legend { display: block; font-weight: 650; margin-bottom: .5rem; }
.public-home.public-inner .public-form :is(input:not([type=checkbox]):not([type=hidden]), select, textarea) { width: 100%; max-width: 100%; min-height: 48px; padding: .75rem; border: 1px solid var(--argodis-control-border); border-radius: 6px; background: white; color: var(--home-ink); font: inherit; box-shadow: none; }
.public-form :is(input, select, textarea, button):focus-visible { outline: 3px solid var(--argodis-action); outline-offset: 3px; }
.public-form fieldset { margin-block: 1.5rem; }
.public-form input[type=checkbox] { width: 20px; height: 20px; flex: none; margin: .2rem 0 0; accent-color: var(--argodis-action); }
.public-choice { display: flex; align-items: flex-start; gap: .75rem; min-height: 48px; padding-block: .5rem; }
.public-errors { color: var(--argodis-danger); margin-block: .5rem; }
.public-errors a { color: inherit; text-decoration: underline; }
.public-form .home-button { cursor: pointer; margin-top: 1.5rem; }
.public-help { color: var(--home-muted); font-size: .875rem; margin-block: .5rem; }
.public-form-section { scroll-margin-top: 1rem; border-top: 4px solid var(--argodis-brand-pink); }
.public-map { width: 100%; height: 320px; border: 1px solid var(--home-line); border-radius: 12px; z-index: 0; margin-block: 1.5rem; }
.public-inner .home-trust-details { max-width: 56rem; }
.public-inner .home-trust-details p { margin: 0; }
.public-legal { padding-block: 2.5rem; }
.public-legal :is(div,p) { font-family: inherit; }
.public-inner :is(h1,h2,h3,h4,p,a,li,span,td) { overflow-wrap: anywhere; }
.public-grid > *, .public-enquiry > * { min-width: 0; }
@media (max-width: 800px) {
 .public-page-hero { padding-block: 2rem; }
 .public-grid, .public-grid-three, .public-enquiry { grid-template-columns: 1fr; }
 .public-section { padding-block: 1.75rem; }
 .public-card { padding: 1.25rem; }
 .public-page-hero > p:not(.home-eyebrow) { font-size: 1rem; }
 .public-actions .home-button { max-width: 100%; }
}

.public-inner h2 { font-size: clamp(1.5rem, 2.6vw, 2.2rem); margin-bottom: 1rem; }
.public-inner h3 { font-size: 1.2rem; margin-bottom: .75rem; }
.public-page-hero h1 { margin-bottom: 1.5rem; }
.public-inner .home-contact-link { display: inline-flex; align-items: center; gap: .65rem; min-height: 48px; text-decoration: none; }
.home-contact-link svg { flex: none; }
.public-inner address { font-style: normal; margin-bottom: 1rem; }
.public-inner .public-form a { text-decoration: underline; }
.public-inner .public-errors ul { list-style: disc; padding-left: 1.25rem; }
.public-inner .public-legal div { margin-bottom: 1rem; }
.public-inner .home-trust-details details > div { padding-bottom: 1.5rem; }
.public-inner .home-trust-details details > div p { padding-bottom: .75rem; }
.public-inner .home-trust-details details > div a { text-decoration: underline; }
.public-inner .public-enquiry h2 { margin-bottom: 1rem; }

/* Four matching location tiles: map, entrance, reception and building. */
.public-visit-intro { margin-bottom: 1.5rem; }
.public-visit-grid .public-photo { margin: 0; }
.public-visit-grid .public-photo > img,
.public-visit-grid .public-map { aspect-ratio: 4 / 3; height: auto; width: 100%; border: 1px solid var(--argodis-control-border); border-radius: 12px; }
.public-visit-grid .public-photo > img { object-fit: cover; }
.public-visit-grid .public-map { margin: 0; }

/* Original emblem components represent the four Leitbild relationships. */
.public-value-heading { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.25rem; }
.public-home .public-value-heading img { width: 56px; height: 56px; object-fit: contain; flex: none; }
.public-home .public-value-heading h3 { margin: 0; }

/* Wide three-card groups remain balanced; smaller screens stack for readability. */
@media (min-width: 801px) and (max-width: 1100px) {
  .public-grid-three { grid-template-columns: 1fr; }
}
.public-card > h3 { border-color: var(--argodis-brand-blue); }
.public-card:nth-child(4n+2) > h3 { border-color: var(--argodis-brand-pink); }
.public-card:nth-child(4n+3) > h3 { border-color: var(--argodis-brand-green); }
.public-card:nth-child(4n+4) > h3 { border-color: var(--argodis-brand-orange); }
.public-contact-alternatives { border-top: 1px solid var(--home-line); padding-block: 1.5rem; }
.public-inner .public-contact-alternatives h2 { font-size: 1.2rem; }
.public-contact-row { display: flex; flex-wrap: wrap; gap: .5rem 2rem; }
.public-contact-row .home-contact-link { min-width: 0; max-width: 100%; }
.public-contact-row .home-contact-link span { overflow-wrap: anywhere; }
.public-contact-row .home-contact-icon { color: var(--home-channel); }

.public-person { border-left: 3px solid var(--argodis-brand-pink); padding-left: 1.25rem; margin-top: 1.75rem; }
.public-person .home-eyebrow { margin-bottom: .5rem; }
.public-prose .public-person h3 { margin-top: 0; }

.public-map-consent { padding: 1.5rem; border: 1px solid var(--home-line); border-top: 3px solid var(--argodis-brand-blue); border-radius: 6px; }
.public-map-consent h3 { margin-top: 0; }
.public-map-withdraw { background: none; border: 0; padding: .75rem 0; font: inherit; color: var(--argodis-action); text-decoration: underline; cursor: pointer; min-height: 48px; }
.public-map-consent button:focus-visible, .public-map-withdraw:focus-visible { outline: 3px solid var(--argodis-action); outline-offset: 3px; }
.public-map { position: relative; }
.public-home #map-consent[hidden], .public-home #address-map[hidden], .public-home #load-map[hidden], .public-home #unload-map[hidden] { display: none !important; }
