* { box-sizing:border-box; }
body { margin:0; color:#273239; background:#fff; font-family:Arial,Helvetica,sans-serif; }
.msf-profile-hero { position:relative; height:360px; display:grid; place-items:center; overflow:hidden; background:#617783; }
.msf-profile-hero img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 42%; }
.msf-profile-hero::after { content:""; position:absolute; inset:0; background:rgba(27,42,52,.28); }
.msf-profile-hero h1 { position:relative; z-index:1; color:white; font-size:54px; line-height:1.1; text-shadow:0 3px 10px rgba(0,0,0,.3); margin:0; padding:0 20px 22px; text-align:center; }
.msf-profile-hero h1::after { content:""; display:block; width:140px; height:3px; background:rgba(255,255,255,.7); margin:20px auto 0; }
.msf-profile-overview { background:#eee; padding:32px 22px; }
.msf-profile-overview-inner { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:30px; align-items:start; max-width:980px; margin:auto; }
.msf-profile-photo-frame { aspect-ratio:4/3; border-radius:10px; background:#e3e3e3; overflow:hidden; }
.msf-profile-active-photo { display:block; height:100%; width:100%; object-fit:contain; }
.msf-profile-gallery-controls { display:flex; justify-content:center; align-items:center; gap:16px; margin:12px 0; color:#3f7386; }
.msf-profile-gallery-controls button { flex-shrink:0; border:1px solid #b6c8d0; border-radius:50%; height:44px; width:44px; background:white; color:#3f7386; font:24px Arial,Helvetica,sans-serif; cursor:pointer; }
.msf-profile-gallery-controls output { min-width:68px; text-align:center; font-size:14px; }
.msf-profile-thumbnails { display:flex; gap:8px; padding:4px 2px 8px; overflow-x:auto; }
.msf-profile-thumbnails button { flex:0 0 64px; border:2px solid transparent; border-radius:7px; background:white; padding:2px; height:64px; cursor:pointer; }
.msf-profile-thumbnails button[aria-pressed="true"] { border-color:#548fac; }
.msf-profile-thumbnails img { display:block; width:100%; height:100%; object-fit:cover; border-radius:4px; }
.msf-profile button:focus-visible, .msf-profile a:focus-visible { outline:3px solid #3f7386; outline-offset:3px; }
.msf-profile-facts h2 { color:#548fac; font-size:28px; line-height:1.2; margin:0 0 16px; }
.msf-profile-facts dl { margin:0; font-size:16px; line-height:1.6; }
.msf-profile-facts dl div { margin-bottom:7px; padding-left:13px; position:relative; }
.msf-profile-facts dl div::before { content:"▪"; position:absolute; left:0; color:#548fac; }
.msf-profile-facts dt, .msf-profile-facts dd { display:inline; margin:0; }
.msf-profile-facts dt::after { content:" : "; }
.msf-profile-status { width:fit-content; font-size:14px; font-weight:700; padding:6px 12px; margin:0 0 18px; background:#e5f0f5; color:#3f7386; border-radius:20px; }
.msf-profile-adopted { background:#f8e7ef; color:#945972; }
.msf-profile-apply { display:block; color:white; background:#497a90; text-align:center; padding:13px 16px; font-size:16px; margin-top:20px; border-radius:7px; text-decoration:none; }
.msf-profile-apply:hover { background:#37677d; }
.msf-profile-story { max-width:980px; margin:auto; padding:32px 22px; text-align:center; }
.msf-profile-story h2, .msf-profile-family h2 { color:#548fac; font-size:28px; margin:0 0 18px; }
.msf-profile-story p { margin:0; font-size:16px; line-height:1.75; }
.msf-profile-family { max-width:980px; margin:auto; padding:32px 22px; border-top:1px dashed #d7dee2; text-align:center; }
.msf-profile-parent-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.msf-profile-parent { display:block; position:relative; aspect-ratio:1; border-radius:10px; overflow:hidden; box-shadow:0 8px 20px rgba(0,0,0,.1); }
.msf-profile-parent img { display:block; width:100%; height:100%; object-fit:cover; }
.msf-profile-parent span { position:absolute; left:12px; bottom:12px; padding:8px 12px; border-radius:20px; background:rgba(255,255,255,.94); color:#273239; font-size:14px; font-weight:700; }
.msf-profile-back { padding:4px 22px 32px; text-align:center; }
.msf-profile-back a { color:#3f7386; font-size:16px; font-weight:700; text-underline-offset:4px; }
@media(max-width:700px) {
  .msf-profile-hero { height:280px; }
  .msf-profile-hero h1 { font-size:40px; }
  .msf-profile-overview { padding:24px 16px; }
  .msf-profile-overview-inner { grid-template-columns:minmax(0,1fr); gap:24px; }
  .msf-profile-facts h2 { font-size:27px; }
  .msf-profile-story, .msf-profile-family { padding:28px 16px; }
  .msf-profile-parent span { left:7px; bottom:7px; padding:6px 9px; }
}
