/* Supporting public pages share the offer palette. Page classes keep the scope explicit. */
.public-page-layout { --page-ink:#233a32; --page-muted:#526159; --page-green:#356542; --page-dark:#244b3e; --page-line:#cfdfcf; --page-tint:#edf5ed; --page-sand:#faf2e6; --page-blue:#edf4f9; }
.public-page-layout:not(.page-home) { background:#fff; }
.public-page-layout main :is(h1,h2,h3) { color:var(--page-ink); text-wrap:balance; }
.public-page-layout main p { text-wrap:pretty; }
.public-page-layout main [id] { scroll-margin-top:112px; }
.public-page-layout main :is(a,button,summary,input,select,textarea):focus-visible { outline:3px solid var(--page-green); outline-offset:4px; }
.public-page-layout main :is(.public-kicker,.contact-kicker) { color:var(--page-green); font-size:.76rem; letter-spacing:.07em; }
.public-page-layout main :is(.company-container,.author-profile-shell,.gen-container),
.public-page-layout.page-contact .contact-main > .container,
.public-page-layout.page-reviews main > .home-shell,
.public-page-layout.page-reviews .reviews-hero-inner { width:min(1200px,calc(100% - 64px)); max-width:none; margin-inline:auto; padding-inline:0; }
.public-page-layout:not(.page-home) main h1,.public-page-layout.page-reviews main h1 { font-size:clamp(2.2rem,3.6vw,3.5rem); line-height:1.17; }
.public-page-layout:not(.page-home) main h2,.public-page-layout.page-reviews main h2 { font-size:clamp(1.8rem,2.6vw,2.4rem); line-height:1.25; }
.public-page-layout main :is(.company-breadcrumb,.author-profile-breadcrumb,.recruitment-breadcrumb,.reviews-breadcrumb) { margin-bottom:24px; font-size:.8rem; line-height:1.6; color:var(--page-muted); }

/* Contact: introduction first, direct channels and form at the same level. */
.public-refresh.public-page-layout.page-contact .contact-main { padding-block:36px 56px; background:linear-gradient(180deg,#f2f7f0 0,#fff 480px); }
.public-refresh.public-page-layout.page-contact .contact-page-intro { position:static; max-width:880px; margin-bottom:32px; padding:0; background:transparent; border:0; box-shadow:none; }
.public-refresh.public-page-layout.page-contact .contact-page-intro h1 { margin:12px 0 20px; }
.public-refresh.public-page-layout.page-contact .contact-page-intro p { color:var(--page-muted); font-size:1.025rem; line-height:1.85; }
.public-refresh.public-page-layout.page-contact .contact-grid { grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:30px; align-items:start; }
.public-refresh.public-page-layout.page-contact .contact-info { min-width:0; }
.public-refresh.public-page-layout.page-contact .info-items { display:grid; grid-template-columns:minmax(0,1fr); gap:12px; margin-top:0; }
.public-refresh.public-page-layout.page-contact .info-item { padding:17px 20px; min-width:0; border:1px solid var(--page-line); border-left:4px solid var(--page-green); border-radius:12px; background:#fff; box-shadow:none; }
.public-refresh.public-page-layout.page-contact .info-item:first-child { background:var(--page-dark); border-color:var(--page-dark); color:#fff; }
.public-refresh.public-page-layout.page-contact .info-item:first-child :is(.label,.value) { color:#fff; }
.public-refresh.public-page-layout.page-contact .info-item .icon { width:44px; height:44px; border-radius:10px; background:var(--page-tint); color:var(--page-green); flex-shrink:0; }
.public-refresh.public-page-layout.page-contact .info-item .value { color:var(--page-ink); font-size:1.05rem; }
.public-refresh.public-page-layout.page-contact .info-item .label { color:var(--page-muted); }
.public-refresh.public-page-layout.page-contact .social-links { margin-top:4px; gap:12px; }
.public-refresh.public-page-layout.page-contact .contact-preparation { padding:24px; border:1px solid var(--page-line); border-radius:14px; background:var(--page-tint); box-shadow:none; }
.public-refresh.public-page-layout.page-contact .contact-preparation:last-child { background:var(--page-blue); border-color:#ccdfe9; }
.public-refresh.public-page-layout.page-contact .contact-card-icon { border:0; background:#fff; color:var(--page-green); border-radius:10px; }
.public-refresh.public-page-layout.page-contact .contact-preparation h2 { font-size:1.5rem; }
.public-refresh.public-page-layout.page-contact .contact-preparation p { color:var(--page-muted); }
.public-refresh.public-page-layout.page-contact .contact-form-wrapper { min-width:0; padding:30px; border:1px solid var(--page-line); border-top:4px solid var(--page-green); border-radius:16px; background:#fff; box-shadow:none; }
.public-refresh.public-page-layout.page-contact .contact-form-header h2 { font-size:1.8rem; }
.public-refresh.public-page-layout.page-contact .contact-form-header { margin-bottom:24px; }
.public-refresh.public-page-layout.page-contact :is(.contact-form-eyebrow,.contact-form-label > span,.contact-form-required-note > span) { color:var(--page-green); }
.public-refresh.public-page-layout.page-contact textarea { min-height:200px; }
.public-refresh.public-page-layout.page-contact .contact-form :is(input,textarea,select) { border-radius:8px; }

/* Author: preserve the portrait, role and approved line breaks. */
.public-page-layout.page-author-profile .author-profile-main { padding-block:28px 52px; background:linear-gradient(180deg,#f2f7f0 0,#fff 780px); }
.public-page-layout.page-author-profile .author-profile-hero { grid-template-columns:minmax(0,1.35fr) minmax(0,.85fr); gap:44px; padding-bottom:42px; }
.public-page-layout.page-author-profile .author-profile-portrait { padding:10px; border:1px solid var(--page-line); border-radius:18px; background:var(--page-tint); }
.public-page-layout.page-author-profile .author-profile-portrait img { border-radius:12px; }
.public-page-layout.page-author-profile .author-profile-lead { font-size:1.15rem; line-height:1.75; color:var(--page-ink); }
.public-page-layout.page-author-profile .author-profile-section { padding-block:40px; border-color:var(--page-line); }
.public-page-layout.page-author-profile .author-profile-card { padding:28px; border:1px solid var(--page-line); border-top:4px solid var(--page-green); border-radius:14px; background:var(--page-tint); }
.public-page-layout.page-author-profile .author-profile-card:nth-child(2) { background:var(--page-sand); border-color:#e7d7be; border-top-color:#875524; }
.public-page-layout.page-author-profile .author-profile-card p { color:var(--page-muted); }
.public-page-layout.page-author-profile .author-profile-business { border:1px solid var(--page-line); border-radius:12px; background:#fff; }
.public-page-layout.page-author-profile .author-profile-development { gap:36px; }
.public-page-layout.page-author-profile .author-profile-education li { background:var(--page-blue); border:1px solid #ccdfe9; border-top:3px solid #305f7d; border-radius:12px; }
.public-page-layout.page-author-profile .author-profile-training { background:var(--page-tint); border-color:var(--page-line); }
.public-page-layout.page-author-profile .author-profile-contact { padding:30px; background:var(--page-dark); border-color:var(--page-dark); color:#fff; }
.public-page-layout.page-author-profile .author-profile-contact h2 { color:#fff; }
.public-page-layout.page-author-profile .author-profile-contact p { color:#dbe8d8; }
.public-page-layout.page-author-profile .author-profile-contact .author-profile-button { background:#e4f1d7; color:var(--page-dark); border-color:#d4e5c3; }
.public-page-layout.page-author-profile .author-profile-button { min-height:48px; border-radius:9px; }

/* Recruitment: restrained red accents and the original portrait remain. */
.public-page-layout.page-recruitment .recruitment-hero { padding:28px 0 40px; background:linear-gradient(115deg,#faf2e6,#fffaf7 76%); }
.public-page-layout.page-recruitment .recruitment-hero-grid { gap:44px; grid-template-columns:minmax(0,1.35fr) minmax(0,.8fr); }
.public-page-layout.page-recruitment .recruitment-portrait { border-radius:18px; box-shadow:none; }
.public-page-layout.page-recruitment .recruitment-section { padding-block:44px; }
.public-page-layout.page-recruitment .recruitment-section-intro { margin-bottom:26px; }
.public-page-layout.page-recruitment .recruitment-split { gap:40px; }
.public-page-layout.page-recruitment .recruitment-checklist { border:1px solid var(--page-line); border-top:4px solid var(--page-green); border-radius:14px; padding:24px; background:var(--page-tint); }
.public-page-layout.page-recruitment .recruitment-checklist li::before { color:var(--page-green); }
.public-page-layout.page-recruitment .recruitment-section-tinted { background:#faf2e6; border-color:#e7d7be; }
.public-page-layout.page-recruitment .recruitment-benefit { background:#fff; border-radius:14px; padding:24px; }
.public-page-layout.page-recruitment .recruitment-benefit:nth-child(3n+2) { background:#fffaf4; }
.public-page-layout.page-recruitment .recruitment-work-card { border:1px solid #ccdfe9; border-top:4px solid #305f7d; border-radius:14px; padding:26px; background:var(--page-blue); }
.public-page-layout.page-recruitment .recruitment-process { background:var(--page-dark); }
.public-page-layout.page-recruitment .recruitment-process :is(h2,h3) { color:#fff; }
.public-page-layout.page-recruitment .recruitment-process p { color:#dbe8d8; }
.public-page-layout.page-recruitment .recruitment-process .recruitment-kicker { color:#c7e4ad; }
.public-page-layout.page-recruitment .recruitment-steps { gap:18px; }
.public-page-layout.page-recruitment .recruitment-steps li { padding:24px; border:1px solid #ffffff30; border-radius:12px; background:#ffffff08; }
.public-page-layout.page-recruitment .recruitment-steps li::before { color:#c7e4ad; background:transparent; border-color:#8bac7b; }
.public-page-layout.page-recruitment .recruitment-contact-section { padding-block:44px; }
.public-page-layout.page-recruitment .recruitment-contact { border-radius:16px; box-shadow:none; }
.public-page-layout.page-recruitment .recruitment-button { border-radius:9px; min-height:48px; }

/* Reviews and company details: clear invitation and practical information. */
.public-page-layout.page-reviews .reviews-hero { padding-block:28px 32px; background:linear-gradient(115deg,var(--page-tint),#fafbf8 76%); }
.public-page-layout.page-reviews .reviews-hero p { max-width:800px; color:var(--page-muted); font-size:1.025rem; line-height:1.85; }
.public-page-layout.page-reviews .reviews-hero h1 em { color:var(--page-green); }
.public-page-layout.page-reviews .reviews-content { gap:26px; padding-block:36px 52px; align-items:start; }
.public-page-layout.page-reviews :is(.reviews-form-card,.reviews-guide) { padding:28px; border:1px solid var(--page-line); border-radius:16px; box-shadow:none; }
.public-page-layout.page-reviews .reviews-form-card { border-top:4px solid var(--page-green); background:var(--page-tint); }
.public-page-layout.page-reviews .reviews-guide { background:#fff; }
.public-page-layout.page-reviews .reviews-fair-note { padding:20px; background:#fff; border:1px solid var(--page-line); border-radius:12px; }
.public-page-layout.page-reviews .reviews-fair-note h3 { font-size:1.25rem; }
.public-page-layout.page-reviews .reviews-steps li { border-color:var(--page-line); }
.public-page-layout.page-reviews .reviews-faq { padding:16px 0; border-color:var(--page-line); }
.public-page-layout.page-reviews .reviews-publish .home-button { background:var(--page-dark); color:#fff; border-color:var(--page-dark); min-height:48px; border-radius:9px; }
.public-page-layout.page-company-details .company-main { padding-bottom:52px; }
.public-page-layout.page-company-details .company-intro { padding-block:28px 34px; background:linear-gradient(115deg,var(--page-tint),#fafbf8 76%); }
.public-page-layout.page-company-details .company-intro h1 { margin-bottom:18px; }
.public-page-layout.page-company-details .company-intro p { color:var(--page-muted); }
.public-page-layout.page-company-details .company-grid { margin-top:30px; gap:28px; }
.public-page-layout.page-company-details .company-card { padding:28px; border-radius:16px; box-shadow:none; border-color:var(--page-line); }
.public-page-layout.page-company-details .company-card h2 { font-size:1.8rem; }
.public-page-layout.page-company-details .company-contact { background:var(--page-dark); border-color:var(--page-dark); }
.public-page-layout.page-company-details .company-contact :is(h2,dd,a) { color:#fff; }
.public-page-layout.page-company-details .company-contact :is(p,dt,.public-kicker) { color:#dbe8d8; }
.public-page-layout.page-company-details .company-button { min-height:48px; border-radius:9px; }
.public-page-layout.page-company-details .company-contact .company-button-light { background:#e4f1d7; color:var(--page-dark); }
.public-page-layout.page-company-details .company-address-note { background:var(--page-sand); border-color:#e7d7be; border-radius:12px; }

/* Privacy: readable document with a compact navigation column. */
.public-refresh.public-page-layout.page-privacy .privacy-main { padding-block:36px 52px; background:linear-gradient(180deg,#f2f7f0 0,#fff 400px); }
.public-refresh.public-page-layout.page-privacy .privacy-main > .container { width:min(1200px,calc(100% - 64px)); max-width:none; padding:0; margin-inline:auto; }
.public-refresh.public-page-layout.page-privacy .privacy-content { max-width:none; padding:0; }
.public-refresh.public-page-layout.page-privacy .privacy-content > h1 { max-width:930px; margin:0 0 20px; }
.public-refresh.public-page-layout.page-privacy .privacy-content > p { max-width:820px; margin-bottom:32px; }
.public-refresh.public-page-layout.page-privacy .privacy-layout { display:grid; grid-template-columns:minmax(0,.72fr) minmax(0,1.65fr); gap:32px; align-items:start; }
.public-refresh.public-page-layout.page-privacy .privacy-toc { display:grid; grid-template-columns:minmax(0,1fr); gap:0; padding:14px 20px; margin:0; border:1px solid var(--page-line); border-top:4px solid var(--page-green); border-radius:14px; background:var(--page-tint); position:sticky; top:110px; }
.public-refresh.public-page-layout.page-privacy .privacy-toc a { padding:12px 0; min-height:44px; border-bottom:1px solid var(--page-line); color:var(--page-ink); font-size:.86rem; line-height:1.6; text-decoration:none; }
.public-refresh.public-page-layout.page-privacy .privacy-toc a:last-child { border-bottom:0; }
.public-refresh.public-page-layout.page-privacy .privacy-toc a:hover { text-decoration:underline; text-underline-offset:4px; }
.public-refresh.public-page-layout.page-privacy .privacy-sections { min-width:0; }
.public-refresh.public-page-layout.page-privacy .privacy-section { padding:26px; margin-bottom:20px; background:#fff; border:1px solid var(--page-line); border-radius:14px; }
.public-refresh.public-page-layout.page-privacy .privacy-content .privacy-section h2 { display:block; font-size:1.45rem; line-height:1.4; margin:0 0 18px; padding:0; border:0; font-family:var(--font-heading); }
.public-refresh.public-page-layout.page-privacy .privacy-content :is(p,li) { color:var(--page-muted); font-family:var(--font-main); font-size:.98rem; line-height:1.85; }
.public-refresh.public-page-layout.page-privacy .privacy-content a { color:var(--page-green); text-decoration:underline; text-underline-offset:3px; overflow-wrap:anywhere; }
.public-refresh.public-page-layout.page-privacy .privacy-content .privacy-toc a { text-decoration:none; }
.public-refresh.public-page-layout.page-privacy .privacy-section > :last-child { margin-bottom:0; }

/* Error screens use the same light hero and a dark information card. */
.public-page-layout.error-page .error-hero { min-height:0; padding:44px 32px; background:linear-gradient(115deg,var(--page-tint),#fafbf8 76%); color:var(--page-ink); }
.public-page-layout.error-page .error-hero::before,.public-page-layout.error-page .error-hero::after { content:none; }
.public-page-layout.error-page .error-container { max-width:1200px; gap:44px; grid-template-columns:minmax(0,1.5fr) minmax(0,.8fr); }
.public-page-layout.error-page .error-eyebrow { color:var(--page-green); font-size:.76rem; letter-spacing:.07em; }
.public-page-layout.error-page .error-copy h1 { font-size:clamp(2.2rem,3.6vw,3.5rem); line-height:1.17; color:var(--page-ink); letter-spacing:-.025em; }
.public-page-layout.error-page .error-copy h1 em { color:var(--page-green); }
.public-page-layout.error-page .error-hero .error-lead { color:var(--page-muted); font-size:1rem; line-height:1.85; }
.public-page-layout.error-page .error-number { min-height:290px; border-radius:18px; background:var(--page-dark); box-shadow:none; border:1px solid var(--page-dark); backdrop-filter:none; }
.public-page-layout.error-page .error-number strong { color:#d8ecc4; -webkit-text-stroke:0; font-size:8rem; letter-spacing:-.04em; }
.public-page-layout.error-page .error-number span { color:#dbe8d8; bottom:28px; font-size:.78rem; }
.public-page-layout.error-page .error-actions .btn { min-height:48px; border-radius:9px; }
.public-page-layout.error-page .error-actions .btn-primary { color:#172612; background:#82c342; border-color:#82c342; }
.public-page-layout.error-page .error-secondary { color:var(--page-green); background:#fff; border-color:var(--page-line); }
.public-page-layout.error-page .error-routes { padding:40px 32px 52px; background:#fff; }
.public-page-layout.error-page .error-routes-inner { max-width:1200px; }
.public-page-layout.error-page .error-route { border-radius:14px; box-shadow:none; min-height:0; border-color:var(--page-line); }
.public-page-layout.error-page .error-route:nth-child(2) { background:var(--page-sand); border-color:#e7d7be; }
.public-page-layout.error-page .error-route:nth-child(3) { background:var(--page-blue); border-color:#ccdfe9; }
.public-page-layout.error-page .error-route p { color:var(--page-muted); }

/* The home composition is retained; only card accents and buttons are aligned. */
.public-page-layout.page-home:not(.page-reviews) .home-offer-card { border-color:#cfdfcf; border-radius:16px; }
.public-page-layout.page-home:not(.page-reviews) .home-button { border-radius:9px; }
.public-page-layout.page-home:not(.page-reviews) .home-contact-band { background:#244b3e; }

@media(max-width:1050px) {
 .public-refresh.public-page-layout.page-privacy .privacy-layout { grid-template-columns:minmax(0,.85fr) minmax(0,1.65fr); gap:22px; }
 .public-refresh.public-page-layout.page-contact .contact-grid { gap:22px; }
 .public-refresh.public-page-layout.page-contact .contact-form-wrapper { padding:24px; }
 .public-page-layout.page-recruitment .recruitment-hero-grid,.public-page-layout.page-author-profile .author-profile-hero { gap:28px; }
}
@media(max-width:800px) {
 .public-refresh.public-page-layout.page-contact .contact-grid,.public-refresh.public-page-layout.page-privacy .privacy-layout { grid-template-columns:minmax(0,1fr); }
 .public-refresh.public-page-layout.page-privacy .privacy-toc { position:static; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:22px; }
 .public-page-layout.page-recruitment .recruitment-hero-grid,.public-page-layout.page-author-profile .author-profile-hero { grid-template-columns:minmax(0,1fr); }
 .public-page-layout.page-recruitment .recruitment-portrait,.public-page-layout.page-author-profile .author-profile-portrait { width:min(100%,420px); justify-self:center; }
 .public-page-layout.page-recruitment .recruitment-split { grid-template-columns:minmax(0,1fr); gap:24px; }
 .public-page-layout.error-page .error-container { grid-template-columns:minmax(0,1fr); gap:28px; }
 .public-page-layout.error-page .error-number { min-height:210px; }
 .public-page-layout.error-page .error-number strong { font-size:6rem; }
}
@media(max-width:600px) {
 .public-page-layout main :is(.company-container,.author-profile-shell,.gen-container),.public-page-layout.page-contact .contact-main > .container,.public-page-layout.page-reviews main > .home-shell,.public-page-layout.page-reviews .reviews-hero-inner,.public-refresh.public-page-layout.page-privacy .privacy-main > .container { width:calc(100% - 36px); }
 .public-page-layout:not(.page-home) main h1,.public-page-layout.page-reviews main h1 { font-size:clamp(2rem,7.8vw,2.4rem); }
 .public-page-layout.page-author-profile .author-profile-card,.public-page-layout.page-author-profile .author-profile-contact,.public-page-layout.page-reviews :is(.reviews-form-card,.reviews-guide),.public-page-layout.page-company-details .company-card,.public-refresh.public-page-layout.page-privacy .privacy-section { padding:22px; }
 .public-refresh.public-page-layout.page-privacy .privacy-toc { grid-template-columns:minmax(0,1fr); }
 .public-refresh.public-page-layout.page-contact .contact-form-wrapper { padding:22px; }
 .public-refresh.public-page-layout.page-contact .contact-preparation { padding:22px; }
 .public-page-layout.page-recruitment .recruitment-steps { grid-template-columns:minmax(0,1fr); }
 .public-page-layout.page-recruitment .recruitment-hero { padding-block:24px 32px; }
 .public-page-layout.error-page .error-hero { padding:28px 18px; }
 .public-page-layout.error-page .error-routes { padding:32px 18px 40px; }
}
