@charset "utf-8";
/* Existing brand, native PHP/CSS. Photo frames are square; native controls keep the shared 4px radius. */
body.front-page { --front-surface:#fff; --front-canvas:#f1f5f2; --front-ink:#243b32; --front-muted:#52675e; --front-line:#d3dfd8; --front-link:var(--accent); --ink:var(--front-ink); --muted:var(--front-muted); --line:var(--front-line); color:var(--front-ink); background:var(--front-canvas); }
.front-page #container { max-width:1200px; padding:28px 32px; background:var(--front-surface); }
.front-page a { color:var(--front-link); }
.front-page h1 a { color:inherit; text-decoration:none; }
.front-page .front-skip { position:absolute; top:0; left:16px; z-index:6; padding:8px 12px; color:white; background:var(--accent); transform:translateY(-120%); }
.front-page .front-skip:focus { transform:none; }
.front-page #front-content:focus-visible { outline:3px solid #c38121; outline-offset:4px; }
.front-page .front-section-heading { margin:26px 0 22px; }
.front-page .front-section-heading h2 { margin:0 0 8px; font-size:1.6rem; }
.front-page .front-section-heading p { margin:6px 0 0; max-width:65ch; }
.front-page .front-photo-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:28px 24px; padding:0; margin:0; list-style:none; }
.front-page .front-photo { min-width:0; }
.front-page .front-photo-link { display:block; text-decoration:none; }
.front-page .front-photo-link:hover h3 { text-decoration:underline; text-underline-offset:4px; }
.front-page .front-photo-frame,.front-page .front-profile-frame { display:flex; justify-content:center; align-items:center; aspect-ratio:2/3; border:1px solid var(--front-line); background:var(--front-canvas); }
.front-page .front-photo-frame img { width:100%; height:100%; object-fit:contain; }
.front-page .front-image-placeholder { display:flex; align-items:center; justify-content:center; width:100%; height:100%; min-height:100px; padding:18px; color:var(--front-muted); text-align:center; font-size:.88rem; }
.front-page .front-photo h3 { margin:12px 0 4px; font-size:1.05rem; line-height:1.5; }
.front-page .front-photo-meta { display:grid; gap:2px; margin:0; color:var(--front-muted); font-size:.85rem; }
.front-page .front-empty,.front-page .front-notice { padding:24px 20px; border:1px dashed var(--front-line); background:var(--front-canvas); }
.front-page .front-empty p { margin:0; }
.front-page .front-notice h2 { margin-top:0; }
.front-page .front-pagination { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:12px; margin:28px 0 0; }
.front-page .front-pagination > div:last-child { text-align:right; }
.front-page .front-pagination a { display:inline-flex; justify-content:center; align-items:center; min-height:44px; padding:7px 16px; border:1px solid var(--front-line); border-radius:4px; text-decoration:none; }
.front-page .front-pagination > span { color:var(--front-muted); font-size:.88rem; }
.front-page .front-profile { margin-top:26px; }
.front-page .front-profile-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:32px; align-items:start; }
.front-page .front-profile-figure { min-width:0; margin:0; }
.front-page .front-profile-frame > a { display:block; width:100%; height:100%; }
.front-page .front-profile-frame img { display:block; width:100%; height:100%; object-fit:contain; }
.front-page .front-profile-figure.is-placeholder .front-profile-frame { aspect-ratio:auto; min-height:180px; }
.front-page .front-profile-figure figcaption { margin:8px 0 0; color:var(--front-muted); font-size:.88rem; }
.front-page .front-profile-info { min-width:0; }
.front-page .front-profile-info h2 { margin:0 0 20px; font-size:1.8rem; }
.front-page .front-profile-facts { grid-template-columns:90px minmax(0,1fr); gap:12px 18px; margin:0 0 24px; padding-bottom:22px; border-bottom:1px solid var(--front-line); }
.front-page .front-profile-facts dt { padding:0; color:var(--front-muted); font-size:.88rem; }
.front-page .front-profile-description h3 { margin:0 0 8px; }
.front-page .front-profile-description p { margin:0; line-height:1.9; }
.front-page .front-additional { margin-top:32px; }
.front-page .front-additional h2 { margin:0 0 16px; font-size:1.2rem; }
.front-page .front-additional-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; max-width:800px; }
.front-page .front-back { margin:24px 0 0; }
.front-page .button { color:var(--front-link); background:var(--front-surface); border-color:var(--front-line); }
.front-page .front-news { margin-top:40px; padding-top:28px; border-top:1px solid var(--front-line); }
.front-page .front-news .front-section-heading { margin-top:0; }
.front-page .front-news-article { padding:24px 0; border-bottom:1px solid var(--front-line); }
.front-page .front-news-article:first-of-type { padding-top:0; }
.front-page .front-news-article:last-of-type { border-bottom:0; padding-bottom:0; }
.front-page .front-news-article > time { color:var(--front-muted); font-size:.85rem; }
.front-page .front-news-article h3 { margin:6px 0 14px; font-size:1.15rem; }
.front-page .front-news-body { max-width:75ch; line-height:1.9; }
.front-page .front-news-body > :first-child { margin-top:0; }
.front-page .front-news-body * { max-width:100% !important; }
.front-page .front-news-body img { max-width:100% !important; height:auto !important; }
.front-page .front-news-body font[color],.front-page .front-news-body [style*="color"] { color:inherit !important; background-color:transparent !important; }
.front-page .front-news-body a { color:var(--front-link) !important; }
.front-page .front-news-body table { display:block; width:100% !important; overflow-x:auto; }
.front-page .front-news-body pre { white-space:pre-wrap; }
.front-page .front-news-images { display:flex; flex-wrap:wrap; gap:16px; }
.front-page .front-news-images img { width:auto; max-width:min(100%,320px); max-height:320px; object-fit:contain; margin-top:14px; }
.front-page .front-news-new { display:inline-block; margin-left:10px; color:var(--front-link); font-size:.75rem; font-weight:600; }
.front-page .site-footer { color:var(--front-muted); border-color:var(--front-line); }
@media (max-width:1023px) {
 .front-page .front-photo-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px 20px; }
}
@media (max-width:767px) {
 .front-page .front-photo-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 16px; }
 .front-page .front-profile-hero { grid-template-columns:minmax(0,1fr); gap:24px; }
 .front-page .front-profile-figure { max-width:540px; }
 .front-page .front-additional-grid { gap:16px; }
}
@media (max-width:640px) {
 .front-page #container { padding:16px; }
 .front-page h1 { font-size:1.15rem; padding-top:18px; padding-bottom:18px; }
 .front-page .front-section-heading h2 { font-size:1.3rem; }
 .front-page .front-photo h3 { font-size:1rem; }
 .front-page .front-photo-meta { font-size:.8rem; }
 .front-page .front-profile-info h2 { font-size:1.5rem; }
 .front-page .front-profile-facts { grid-template-columns:72px minmax(0,1fr); gap:10px 14px; }
 .front-page .front-image-placeholder { padding:12px; font-size:.8rem; }
 .front-page .front-news { margin-top:32px; padding-top:24px; }
 .front-page .front-news-images img { max-width:100%; }
}
@media (prefers-color-scheme:dark) {
 body.front-page { --front-surface:#17221e; --front-canvas:#101814; --front-ink:#edf4ef; --front-muted:#bfcdc4; --front-line:#43564c; --front-link:#b8dacf; color-scheme:dark; }
 .front-page .front-news-body [style] { color:inherit !important; background-color:transparent !important; }
 .front-page .front-news-body font { color:inherit; }
 @supports (color:color-mix(in srgb,black,white)) {
  body.front-page { --front-link:color-mix(in srgb,var(--accent) 30%,white); }
 }
}
